我已经能够使用文档中展示的相关更新结构(在这里)来更新表中的一个列。
例如:
sel = select([UpdateTable.column]).\
where(UpdateTable.id == OrigTable.id)
up = update(OrigTable).values(column=sel)
生成的 SQL 语句如下:
UPDATE origtable SET column=(SELECT updatetable.column
FROM updatetable
WHERE updatetable.id = origtable.id)
是否可以使用Declarative或Query Api来更新所选内容的多个列?
我正在尝试在PostgreSQL中模拟以下内容:
UPDATE origtable
SET
column1 = updatetable.column1,
column2 = updatetable.column2
FROM updatetable
WHERE origtable.id == updatetable.id
编辑:
使用当前的SQLAlchemy API似乎不可能将此格式化为单个语句。
但是,可以使用两个select语句的解决方法,使用这里的解决方案。