为什么这个语法在postgresql中无效?

uujelgoq  于 2023-06-29  发布在  PostgreSQL
关注(0)|答案(1)|浏览(108)

我试图在一个新表中插入一些列,并在另一个表中设置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
wljmcqd8

wljmcqd81#

根据UPDATE语法https://www.postgresql.org/docs/current/sql-update.html,from_item应该是一个表表达式。但是“INSERT INTO”不能是可以在FROM子句中指定的表表达式。

相关问题