我正在尝试收集一个字典列表,并使用sqlalchemy批量插入到mysql数据库中。
根据these docs for version 0.5,您可以通过executemany
对象的connection
函数调用来执行此操作。这是我能够找到executemany
存在的唯一地方。
但是,在these docs for 0.7中,我发现即使引用了executemany,它们也不会在代码段中使用它,事实上,它不再存在于{{ 1}} class。
这两个函数似乎已合并,但如果是这样,connection
方法与connection.execute
方法有何不同?在文档中似乎session.execute
不支持批量插入,那么如何将几千个字典插入到单个表中呢?
答案 0 :(得分:2)
我认为你误读了0.5链接,你指向的例子仍然使用“execute()”。 SQLAlchemy从未公开过显式的executemany()方法。 executemany()特别是底层DBAPI 的一个函数,如果将给定的参数集检测为参数列表,SQLAlchemy将使用它。
session.execute()
支持与connection.execute()
相同的功能,但参数列表是使用命名参数“params”给出的。文档字符串并不明确,可能会对此进行调整。
您还可以使用Connection
方法从Session
获取特定于交易的session.connection()
对象。