在我的函数中我使用构造
insert into Table1(a, b, c)
select a, b, c from Table2
我需要从这个函数调用到Table 1的最后插入行的id
从表1中选择max(id)的方法不正确。
在文档中我搜索了returning
,但这不适用于多个插入。
do $$
declare _query int;
begin
drop table if exists tTest;
create temp table tTest (id serial primary key, name text);
--work
insert into tTest(name)
values ('name') returning id into _query;
--but when i use multiple insert - error
insert into tTest(name)
values ('name'), ('name1'), ('name2') returning id into _query;
RAISE NOTICE '%', _query;
end;
$$;
我尝试使用从插入创建数组,使用CTE,但这不工作。有没有办法得到最后的身份证?
我需要模拟scope_identity
在t-sql。
1条答案
按热度按时间eanckbw91#
将CTE与MAX结合使用: