INSERT ... ON DUPLICATE KEY UPDATE在SQLAlchemy中有一种优雅的方式吗?我的意思是语法类似的东西inserter.insert().execute(list_of_dictionaries)?
我正在将对象列表添加entries到数据库中。有时可能会发生这些对象之一已经在数据库中的情况(我对此没有任何控制权)。如果只有一个,IntegrityError所有事务都会失败,即所有对象都entries不会被插入到数据库中。
try:
session.add_all(entries)
session.commit()
except:
logger.error(f"Error! Rolling back")
session.rollback()
raise
finally:
session.close()
Run Code Online (Sandbox Code Playgroud)
我期望的行为是:如果IntegrityError其中一个中有 a entries,则捕获它并且不将该对象添加到数据库中,否则正常继续(不要失败)
编辑:我使用 MySQL 作为后端。