当begin_nested
用作上下文管理器时,例如
with db.session.begin_nested:
# do something
如果抛出
IntegrityError
,会自动调用db.session.rollbank()
吗?相反,如果没有引发异常,是否会自动调用db.session.commit()
? 最佳答案
如果将某个事务(例如 begin_nested
中的一个事务)用作上下文管理器,则该事务将在退出时提交,或者如果块中或提交期间出错,则回滚该事务。
这是相关的来源:https://github.com/zzzeek/sqlalchemy/blob/81518ae2e2bc622f8cd47287a575ad4c0e43ead1/lib/sqlalchemy/orm/session.py#L558-L569
关于python - begin_nested()是否自动回滚/提交?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21379029/