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.