我希望将一次更新的RETURNING值存储到一个数据结构中,以便我可以在后续查询中使用。
在这个例子中,我有一个“parent_ids”列表,并且我想找到所有父项在该数组中的子项。然后,我希望对它们进行一些值的更新并执行其他操作。
CREATE OR REPLACE FUNCTION plpgsql_is_really_great(parent_ids bigint[])
RETURNS void AS
$$
DECLARE
found_ids bigint[];
BEGIN
UPDATE child SET
foo = bar
FROM
(SELECT id
FROM child
WHERE parent_id=ANY(parent_ids)
) as children_ids
WHERE
child.id = children_ids.id
RETURNING children_ids.id INTO found_ids; -- ???
-- do more stuff with found_ids
$$ LANGUAGE plpgsql