我的update
语句带有returning
声明。
我想要的是将结果放入变量或临时表中。
update my_table
set something = 'x'
where id ...
returning *;
我尝试使用execute
语句,例如returning row_to_json(my_table.*)
但变量off off仅包含更新返回的第一行。
答案 0 :(得分:1)
使用带有UPDATE-RETURNING语句的CTE,然后在INSERT中使用它:
CREATE TEMP TABLE t (i int, j int);
CREATE TEMP TABLE u (i int, j int);
INSERT INTO u VALUES (1, 1), (2, 2), (3, 3);
WITH updated AS (
UPDATE u
SET i = i * 10
WHERE i < 3
RETURNING *
)
INSERT INTO t
SELECT *
FROM updated;