1

我正在尝试收集字典列表,并使用 sqlalchemy 将批量插入到 mysql 数据库中。

根据版本 0.5 的这些文档,您可以executemany通过对象的函数调用来执行此操作connection。这是我能找到的唯一executemany存在的地方。

但是,在这些 0.7 的文档中,我发现即使引用了 executemany,他们也没有在代码片段中使用它,事实上,它不再存在于connection类中。

看起来这两个功能是结合在一起的,但是如果是这样,那么connection.execute方法与方法有什么不同session.execute呢?似乎在session.execute不支持批量插入的文档中,那么如何将数千个字典插入到一个表中呢?

4

1 回答 1

2

我认为您误读了 0.5 链接,您指向的示例仍然使用“execute()”。SQLAlchemy 从未公开过明确的 executemany() 方法。executemany() 特别是底层 DBAPI的一个函数,如果给定的参数集被检测为参数列表,SQLAlchemy 将使用它。

session.execute()支持与 相同的功能connection.execute(),除了参数列表是使用命名参数“params”给出的。文档字符串对此没有明确说明,应该对其进行调整。

您还可以通过using方法获取特定于事务的Connection对象。Sessionsession.connection()

于 2012-06-18T21:10:35.197 回答