我希望能够通过一个查询语句将数据插入到3个表中。
我的表结构如下:
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)
);
每次插入我都会得到一个密钥,我需要在下一个表中插入该密钥。
我的查询是:
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;
但如果我运行单个查询,它们只会把值返回给我,我无法立即在下一个查询中重用它们。
如何实现这一点?
sample_id
和user_id
混淆了。这个例子的列名相当具有误导性。已经修复、澄清并添加了一个fiddle。 - Erwin Brandstetter