【问题标题】:Inner Join syntax error in Alembic executeAlembic 执行中的内部联接语法错误
【发布时间】:2021-10-15 15:16:30
【问题描述】:

我有一个"DevAssociation" 表,其中包含prod_iddev_id 列,其中dev_id 是来自DevRun 的fk,我想将prod_id 移动到DevRun 表,所以我创建了一个新表DevRun 中的列称为 prod_id。然后我正在执行以下 SQL 命令来移动 prod_id 数据。我在 Python 中从 alembic 执行此操作,但我觉得它失败的地方更普遍地与 sql 相关。

    conn.execute('UPDATE "DevRun"\
         INNER JOIN "DevAssociation" \
             ON "DevAssociation".dev_id= "DevRun".id \
                 SET prod_id="DevAssociation".prod_id')

我收到以下错误

sqlalchemy.exc.ProgrammingError: (psycopg2.errors.SyntaxError) syntax error at or near "INNER"
LINE 1: UPDATE "DevRun" INNER JOIN "DevAssociation" O...
                             ^

[SQL: UPDATE "DevRun" INNER JOIN "DevAssociation" ON "DevAssociation".dev_id= "DevRun".id SET prod_id="DevAssociation".prod_id]

知道为什么吗?这是在 postgresql 上。

【问题讨论】:

    标签: sql postgresql alembic


    【解决方案1】:

    postgresql 中基于另一个表的更新如下所示:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-09-21
      • 2018-03-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-07-10
      相关资源
      最近更新 更多