我正在向数据库添加一个对象列表entries
。有时可能会发生其中一个对象已经存在于数据库中的情况(我对此没有任何控制)。
如果只出现一个IntegrityError
,所有事务都将失败,即entries
中的所有对象都不会插入到数据库中。
try:
session.add_all(entries)
session.commit()
except:
logger.error(f"Error! Rolling back")
session.rollback()
raise
finally:
session.close()
我期望的行为是:如果在entries
中出现IntegrityError
,则捕获它并不将该对象添加到数据库中;否则就正常继续(不会失败)。
编辑:我正在使用MySQL作为后端。