PostgreSQL hat eine solche erweiterte Interpretation der VALUES
Klausel, dass sie als eigene Unterabfrage verwendet werden kann.
Sie können Ihre Anfrage also in dieser Form formulieren:
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;
Das setzt voraus, dass Sie das kartesische Produkt von new_invoice
einfügen möchten und die Werte, was meistens Sinn macht, wenn new_invoice
ist eigentlich ein einzeiliger Wert.