【发布时间】:2018-05-19 09:40:55
【问题描述】:
在我的项目中,我使用带有bulk_save_objects()-function 的 SQLAlchemy。对我来说,这是一种批量插入大量行的好方法。我已经设置了我的数据库(当前是 SQLite),因此不需要重复的条目。当我尝试插入大量项目并且我不知道是否有重复条目并且我运行程序 SQLAlchemy 引发 IntegrityError-exception 说,有重复的条目。这是我的问题:如何处理重复条目中的bulk_save_objects()-函数?
当我使用 SQLalchemy 的 add() 函数时,很容易在 for 循环中捕获 IntegrityError 异常并忽略它。但是add()-函数对于大量项目来说工作得太慢了。
【问题讨论】:
-
在 SQLite 的情况下,您可以恢复使用 Core 并使用
tbl.insert().prefix_with('OR IGNORE'),例如。 -
@Ilja Everilä:就我而言,这是个坏主意,因为我正在使用 ORM。
标签: python mysql python-2.7 sqlite sqlalchemy