假设我有一个模型
class Foo(...):
foo = Column...
bar = Column...
Run Code Online (Sandbox Code Playgroud)
我有一个 t ) 对列表(foo, bar,它指示对于Foofoo 等于 t[0] 的新值,bar等于 t[1]
如何在一个事务中更新多行?
我明白了session.bulk_update_mapping,但从文档中我不清楚在哪里提供理由的论据where。
我\xe2\x80\x99m 使用 ORM 插入 400,000 行,它\xe2\x80\x99s 真的很慢!- 性能 \xe2\x80\x94 SQLAlchemy 1.1 文档(Google 中关于“sqlalchemy 批量更新”的第四个文档)表明 ORM 不适用于这些 - 以及可能的方法:
\n\n\n\nORM 基本上不适合高性能批量插入 -\n 这就是 SQLAlchemy 提供 Core 以及 ORM 作为一流组件的全部原因。
\n\n对于快速批量插入的用例,ORM 构建于其之上的 SQL 生成和执行系统是核心的一部分。直接使用该系统,我们可以生成与使用直接使用原始数据库 API。
\n\n或者,SQLAlchemy ORM 提供了批量操作方法套件,这些方法提供了对工作单元流程的子部分的挂钩,以便以小程度基于 ORM 的自动化发出核心级 INSERT 和 UPDATE 结构。
\n