我四处寻找答案,它似乎是确定的,但我想我会仔细检查 Stack Overflow 社区:
这是我正在尝试做的事情:
INSERT INTO my_table VALUES (a, b, c)
RETURNING (SELECT x, y, z FROM x_table, y_table, z_table
WHERE xid = a AND yid = b AND zid = c)
我收到一条错误消息,告诉我不能返回超过一列。
如果我告诉它 SELECT x FROM x_table WHERE xid = a
,它就会工作。
与创建单独的 SELECT
查询相比,这在单个查询中是否完全可行?
我正在使用 PostgreSQL 8.3。
最佳答案
试试这个。
with aaa as (
INSERT INTO my_table VALUES(a, b, c)
RETURNING a, b, c)
SELECT x, y, z FROM x_table, y_table, z_table
WHERE xid = (select a from aaa)
AND yid = (select b from aaa)
AND zid = (select c from aaa);
在 9.3 中类似的查询工作。
关于sql - INSERT INTO ... RETURNING 多列 (PostgreSQL),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20508387/