我正在尝试在postgres中执行以下操作:
UPDATE table1 SET (col1, col2) = (SELECT col2, col3 FROM othertable WHERE othertable.col1 = 123);
INSERT INTO table1 (col1, col2) VALUES (SELECT col1, col2 FROM othertable)
但是,即使使用文档(http://www.postgresql.org/docs/9.0/static/sql- update.html)中提到的postgres 9.0,也无法实现第1点
同样,第二点似乎不起作用。我收到以下错误:子查询必须仅返回一列。
希望有人对我有解决方法。否则查询将花费大量时间:(。
仅供参考:我正在尝试从几张表中选择不同的列,并将它们存储到一个临时表中,以便另一个应用程序可以轻松地获取准备好的数据。
使用:
UPDATE table1 SET col1 = othertable.col2, col2 = othertable.col3 FROM othertable WHERE othertable.col1 = 123;
INSERT INTO table1 (col1, col2) SELECT col1, col2 FROM othertable
VALUES如果使用SELECT来填充INSERT值,则不需要语法。
VALUES