SQLAlchemy - 批量插入忽略:"重复输入"

时间:2016-04-08 06:11:58

标签: python mysql sqlalchemy

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

  

IntegrityError:(pymysql.err.IntegrityError)(1062,你"复制条目' 1-1234'密钥' idx_on_id_and_user_id'")

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

1 个答案:

答案 0 :(得分:0)

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

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