begin_nested()是否自动回滚/提交?

2024-10-01 11:38:32 发布

您现在位置:Python中文网/ 问答频道 /正文

begin_nested用作上下文管理器时,例如

with db.session.begin_nested:
    # do something

如果抛出IntegrityError,是否会自动调用db.session.rollbank()?相反,如果没有抛出异常,是否会自动调用db.session.commit()?在


Tags: 管理器dbsessionwithdosomethingnestedcommit
1条回答
网友
1楼 · 发布于 2024-10-01 11:38:32

我找不到文档,但源代码似乎表明,如果一个事务(例如来自begin_nested)的事务用作上下文管理器,则在退出时提交该事务,或者在块中或提交期间发生错误时回滚该事务。在

以下是相关来源:https://github.com/zzzeek/sqlalchemy/blob/81518ae2e2bc622f8cd47287a575ad4c0e43ead1/lib/sqlalchemy/orm/session.py#L558-L569

相关问题 更多 >