gpt4 book ai didi

postgresql - 在 PL/pgSQL 中插入多行时如何获取最后插入的 ID

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

我知道我可以使用returning 来获取最后插入的 ID,但是如果插入查询同时插入多行并且我想获取所有插入的 ID 怎么办?

insert into tbl1
select * from tbl2
returning tbl1.row_id into r_id

我需要做什么才能使 r_id 包含插入行的所有 row_id?

最佳答案

您可以在循环中处理它们。

像这样:

....
declare
idrec record;
begin

for idrec in insert into t1 select * from t2 returning row_id
loop
-- use idrec.row_id somehow
end loop;
end;

另一种选择是将它们收集到一个数组中:

declare
ids integer[];
begin
with inserted (row_id) as (
insert into t1
select * from t2
returning row_id
)
select array_agg(row_id)
into ids
from inserted;

-- use ids array somehow
end;

关于postgresql - 在 PL/pgSQL 中插入多行时如何获取最后插入的 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24705829/

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