PostgreSQL
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> PostgreSQL

Làm thế nào để chèn một hàng duy nhất trong bảng cha và sau đó nhiều hàng trong bảng con trong SQL đơn trong PostgreSQL?

PostgreSQL có cách giải thích mở rộng như vậy về VALUES mệnh đề mà nó có thể được sử dụng như một truy vấn con của chính nó.

Vì vậy, bạn có thể thể hiện truy vấn của mình trong biểu mẫu này:

WITH new_invoice AS (
    INSERT INTO ...
    RETURNING id
),
v(a,b,c,d) AS (values
  ($27,$28,$29,$30),
  ($31,$32,$33,$34),
  ...
)
INSERT INTO invoiceItems (invoice_id, name, qty, price, description)
 SELECT new_invoice.id, a,b,c,d FROM v, new_invoice;

Điều đó giả sử bạn muốn chèn sản phẩm cartesian của new_invoice và các giá trị, hầu hết có ý nghĩa nếu new_invoice thực sự là một giá trị một hàng.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Làm thế nào để truy cập các chế độ xem db bằng cách sử dụng các mô hình Laravel?

  2. Câu lệnh chuẩn bị pg_prepare () (không phải PDO) có ngăn được SQL-Injection không?

  3. Chèn NULL vào DB PostgreSQL qua PHP khi trường ngày trống

  4. Kiểm tra xem cơ sở dữ liệu có tồn tại trong PostgreSQL hay không bằng cách sử dụng shell

  5. Postgres UPSERT sử dụng lại các giá trị cột từ INSERT vào ngày CẬP NHẬT