PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

Bagaimana cara menyisipkan satu baris di tabel induk dan kemudian beberapa baris di tabel anak dalam satu SQL di PostgreSQL?

PostgreSQL memiliki interpretasi yang diperluas dari VALUES klausa yang dapat digunakan sebagai subquery dengan sendirinya.

Jadi, Anda dapat mengungkapkan pertanyaan Anda dalam bentuk ini:

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;

Itu mengasumsikan Anda ingin memasukkan produk kartesius dari new_invoice dan nilainya, yang sebagian besar masuk akal jika new_invoice sebenarnya adalah nilai baris tunggal.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana saya bisa melakukan kueri LIKE untuk kunci jsonb?

  2. DecimalField Mengonversi Nol ke 0E-10

  3. Bagaimana mengatasi masalah izin saat menjalankan Postgresql dari minikube?

  4. Bagaimana cara saya menanyakan semua baris dalam radius 5 mil dari koordinat saya?

  5. Django/Python:Perbarui relasi ke titik di settings.AUTH_USER_MODEL