我试图在一个新表中插入一些列,并在另一个表中设置id。我知道这可以通过使用WITH AS语句来实现,但我很好奇为什么它不能这样工作
UPDATE "a"
SET "c1" = cp.id
FROM (
INSERT INTO "b" ("c2", "c3", "c4")
SELECT "c2", "c3", "c4"
FROM "a"
RETURNING id
) AS cp;
这是我得到的错误:
ERROR: syntax error at or near "INTO"
LINE 4: INSERT INTO "b" ("c2", "c3", "c4")
^
SQL state: 42601
Character: 46
1条答案
按热度按时间wljmcqd81#
根据UPDATE语法https://www.postgresql.org/docs/current/sql-update.html,from_item应该是一个表表达式。但是“INSERT INTO”不能是可以在FROM子句中指定的表表达式。