假设我们有一张简单的桌子
create table a (id serial, data text);
以及以下功能:
create or replace function f()
returns SETOF int As
$BODY$
DECLARE
l_arr int[];
BEGIN
insert into a(data)
values ('a')
returning array_agg(data) into l_arr; --THIS DOES NOT WORK
RETURN l_arr;
END;
$BODY$
LANGUAGE 'plpgsql' VOLATILE SECURITY DEFINER
COST 100
如何将插入的值收集到同一SQL语句中的数组中?
最佳答案
似乎可以使用不带中间数组的返回查询:
create or replace function f()
returns SETOF int As
$BODY$
BEGIN
RETURN QUERY
insert into a(data)
values ('a')
returning id;
END;
$BODY$
LANGUAGE 'plpgsql' VOLATILE SECURITY DEFINER
COST 100
关于postgresql - Postgres:如何在插入后填充数组,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12800296/