Tôi muốn chèn dữ liệu vào 3 bảng với một truy vấn duy nhất.
Các bảng của tôi trông giống như dưới đây:
CREATE TABLE sample (
id bigserial PRIMARY KEY,
lastname varchar(20),
firstname varchar(20)
);
CREATE TABLE sample1(
user_id bigserial PRIMARY KEY,
sample_id bigint REFERENCES sample,
adddetails varchar(20)
);
CREATE TABLE sample2(
id bigserial PRIMARY KEY,
user_id bigint REFERENCES sample1,
value varchar(10)
);
Đổi lại tôi sẽ nhận được một chìa khóa cho mỗi lần chèn và tôi cần phải đưa chìa khóa đó vào bảng tiếp theo.
Truy vấn của tôi là:
insert into sample(firstname,lastname) values('fai55','shaggk') RETURNING id;
insert into sample1(sample_id, adddetails) values($id,'ss') RETURNING user_id;
insert into sample2(user_id, value) values($id,'ss') RETURNING id;
Nhưng nếu tôi chạy các truy vấn đơn lẻ, chúng chỉ trả về giá trị cho tôi và tôi không thể sử dụng lại chúng trong truy vấn tiếp theo ngay lập tức.
Làm thế nào để đạt được điều này?