数据库
首页 > 数据库> > 使用SQLAlchemy Core更新连接表

使用SQLAlchemy Core更新连接表

作者:互联网

我有一个MySQL数据库,表格设置如下:

Table1      Table2
------      ------
  id          id, fk to Table1.id
  name        name

我想更新Table1并设置Table1.id = Table2.id如果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)来创建连接,但是如何更新此连接表呢?

解决方法:

upd = table1.update()\
    .values(id=table2.c.id)\
    .where(table1.c.name == table2.c.name)

应该这样做,但如果你真的拥有所有这些外键,你可能会在进行此类更新时遇到错误.

标签:python,mysql,join,sqlalchemy,inner-join
来源: https://codeday.me/bug/20191008/1873200.html