Câu trả lời cho câu hỏi 1:Sử dụng CTE sửa đổi dữ liệu và trả về PK nối tiếp với RETURNING
mệnh đề:
WITH ins_main AS (
INSERT INTO main(col1)
VALUES ('some value 1')
RETURNING main_id
)
, ins_submain AS (
INSERT INTO submain (main_id, col2)
SELECT main_id, 'some value 2'
FROM ins_main
RETURNING submain_id
)
INSERT INTO subsub (submain_id, col3)
SELECT submain_id, 'some value 3'
FROM ins_submain;
Yêu cầu Postgres 9.1 trở lên.
Các câu trả lời liên quan kèm theo giải thích và liên kết:
- Chèn dữ liệu vào 3 bảng cùng một lúc bằng Postgres
- Giá trị cửa hàng PostgreSQL được trả về bởi RETURNING