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.