You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PostgreSQL下Alembic执行UPDATE INNER JOIN报语法错误如何解决?

报错原因

PostgreSQL 不支持 MySQL 风格的 UPDATE ... INNER JOIN 语法,这是你遇到语法报错的核心原因。PostgreSQL 实现多表关联更新有自己的语法规范,需要通过 FROM 子句指定要关联的额外表,不能直接在 UPDATE 关键字后拼接 JOIN 逻辑。

修正后的实现方案

你可以将原来的SQL替换为符合PostgreSQL规范的写法,和你原有逻辑完全一致:

UPDATE "DevRun"
SET prod_id = "DevAssociation".prod_id
FROM "DevAssociation"
WHERE "DevAssociation".dev_id = "DevRun".id

在 alembic 中执行时建议直接用多行字符串传入,避免手动拼接换行出错:

conn.execute('''
UPDATE "DevRun"
SET prod_id = "DevAssociation".prod_id
FROM "DevAssociation"
WHERE "DevAssociation".dev_id = "DevRun".id
''')

内容的提问来源于stack exchange,提问作者A1122

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 13:24:03