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