我有一个MySQL数据库,表格设置如下:
Table1 Table2
------ ------
id id, fk to Table1.id
name name
我想更新Table1
并设置Table1.id = Table2.id
if Table1.name = Table2.name
。或者,在SQL中:
UPDATE table1 t1
INNER JOIN table2 t2
ON t1.name = t2.name
SET t1.id = t2.id;
如何使用SQLAlchemy Core API完成等效语句?
我可以致电table1.join(table2, table1.c.name == table2.c.name)
来创建联接,但是如何更新此联接表?
答案 0 :(得分:3)
upd = table1.update()\
.values(id=table2.c.id)\
.where(table1.c.name == table2.c.name)
应该这样做,但是如果你真的拥有所有这些外键,那么你可能会在进行此类更新时遇到错误。