sqlalchemy使用executemany从版本0.5更改为0.7

时间:2012-06-18 19:08:16

标签: python mysql sqlalchemy bulkinsert

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

根据these docs for version 0.5,您可以通过executemany对象的connection函数调用来执行此操作。这是我能够找到executemany存在的唯一地方。

但是,在these docs for 0.7中,我发现即使引用了executemany,它们也不会在代码段中使用它,事实上,它不再存在于{{ 1}} class。

这两个函数似乎已合并,但如果是这样,connection方法与connection.execute方法有何不同?在文档中似乎session.execute不支持批量插入,那么如何将几千个字典插入到单个表中呢?

1 个答案:

答案 0 :(得分:2)

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

session.execute()支持与connection.execute()相同的功能,但参数列表是使用命名参数“params”给出的。文档字符串并不明确,可能会对此进行调整。

您还可以使用Connection方法从Session获取特定于交易的session.connection()对象。