PostgreSQLには、VALUES
のそのような拡張された解釈があります 単独でサブクエリとして使用できるという条項。
したがって、次の形式でクエリを表現できます:
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;
これは、new_invoice
のデカルト積を挿入することを前提としています。 および値。これは、new_invoice
の場合にほとんど意味があります。 実際には単一行の値です。