#sql #postgresql #alembic
Вопрос:
У меня есть "DevAssociation"
таблица со столбцами prod_id
, и dev_id
где dev_id
находится fk DevRun
, я хотел бы перейти prod_id
в DevRun
таблицу, поэтому я создал новый столбец в DevRun
called prod_id
. Затем я выполняю следующую команду SQL для перемещения prod_id
данных. Я делаю это alembic
на Python, но я чувствую, что там, где это не удается, в более общем плане связано с 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.
Ответ №1:
обновление в postgresql на основе другой таблицы выглядит следующим образом:
UPDATE "DevRun" SET prod_id="DevAssociation".prod_id FROM "DevAssociation" WHERE "DevAssociation".dev_id= "DevRun".id