sql >> Database >  >> RDS >> PostgreSQL

Hoe voeg je een enkele rij in de bovenliggende tabel in en vervolgens meerdere rijen in de onderliggende tabel in één SQL in PostgreSQL?

PostgreSQL heeft zo'n uitgebreide interpretatie van de VALUES clausule dat het op zichzelf als subquery kan worden gebruikt.

U kunt uw vraag dus in dit formulier uitdrukken:

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;

Dat veronderstelt dat u het cartesiaanse product van new_invoice . wilt invoegen en de waarden, wat meestal logisch is als new_invoice is eigenlijk een waarde uit één rij.



  1. SQLException:Voor de start van de resultatenset

  2. Heeft SQL Server 2005 een equivalent van het ENUM-gegevenstype van MySql?

  3. Hoe vermeld je de primaire sleutel van een SQL Server-tabel?

  4. Hoe vind je het aantal rijen voor al je tabellen in Postgres