我知道当session.commit()
失败时调用回滚,例如try-except
阻止
但是当session.flush()
失败时,我应该执行rollback()
吗?
try:
session.flush()
except IntegrityError:
session.rollback()
答案 0 :(得分:3)
失败的同花顺总是回滚,你不需要自己动手:
http://docs.sqlalchemy.org/en/latest/orm/session_api.html#sqlalchemy.orm.session.Session.flush
数据库操作将在当前事务上下文中发出,并且不会影响事务的状态,除非发生错误,在这种情况下整个事务将回滚。您可以在事务中随意刷新()以将更改从Python移动到数据库的事务缓冲区。
答案 1 :(得分:1)