Я хочу сохранить значения RETURNING для обновления в структуру данных, чтобы я мог использовать ее в последующем запросе.PostgreSQL - RETURNING INTO array
В этом примере мне предоставляется список «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
Это действительно зависит от того, что вы хотите сделать с собранными идентификаторами. Как правило, лучшим решением является один запрос с модифицирующими данные CTE. –