gpt4 book ai didi

postgresql - 我可以在另一个 INSERT 中使用 INSERT...RETURNING 的返回值吗?

转载 作者:行者123 更新时间:2023-11-29 11:05:25 24 4
gpt4 key购买 nike

这样的事情可能吗?

INSERT INTO Table2 (val)
VALUES ((INSERT INTO Table1 (name) VALUES ('a_title') RETURNING id));

喜欢使用返回值作为值在第二个表中插入一行并引用第一个表吗?

最佳答案

您可以从 Postgres 9.1 开始这样做:

with rows as (
INSERT INTO Table1 (name) VALUES ('a_title') RETURNING id
)
INSERT INTO Table2 (val)
SELECT id
FROM rows

与此同时,如果您只对 id 感兴趣,则可以使用触发器:

create function t1_ins_into_t2()
returns trigger
as $$
begin
insert into table2 (val) values (new.id);
return new;
end;
$$ language plpgsql;

create trigger t1_ins_into_t2
after insert on table1
for each row
execute procedure t1_ins_into_t2();

关于postgresql - 我可以在另一个 INSERT 中使用 INSERT...RETURNING 的返回值吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6560447/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com