【发布时间】:2015-12-04 15:12:01
【问题描述】:
我已经能够使用文档here 中显示的相关更新构造来更新表中的一列。
例如:
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)
是否可以使用 Declaritive 或 Query Api 更新多个列以进行选择?
我正在尝试在 PostgreSQL 中模拟以下内容:
UPDATE origtable
SET
column1 = updatetable.column1,
column2 = updatetable.column2
FROM updatetable
WHERE origtable.id == updatetable.id
编辑:
似乎使用当前的 SQLAlchemy api 可能无法格式化这个单个语句。
但是,使用 here 的解决方案似乎可以使用两个选择的解决方法。
【问题讨论】:
-
This solution 不是最佳选择,但可能已经足够满足您的需要。
-
谢谢@lrnzcig,我认为这样的事情是可能的。我猜目前的api不直接支持这个。
-
不客气。 (如果有帮助,我可以建议为链接的解决方案 +1。谢谢。)
-
@lrnzcig。完成,再次感谢。
标签: python postgresql sqlalchemy