SQLAlchemy - 批量插入忽略:"Duplicate entry"

SQLAlchemy - bulk insert ignore: "Duplicate entry"

我有一个名为 user_data 的 table,列 iduser_id 作为唯一键。我想将一些历史数据导入到此 table。我使用 bulk_insert_mappings 方法批量插入数据。但是出现如下错误:

IntegrityError: (pymysql.err.IntegrityError) (1062, u"Duplicate entry '1-1234' for key 'idx_on_id_and_user_id'")

如何在批量插入时忽略此错误并丢弃重复数据?

你应该处理每一个错误。但是如果你真的想忽略所有错误,你就不能真正地进行批量插入。有时您导入的实际数据会存在完整性错误。您必须一一插入并忽略。我只会在一次性脚本中使用它。

for item in dict_list:
    try:
        session.merge(orm(**item))
        session.commit()
    except Exception as e:
        session.rollback()