【问题标题】:Does begin_nested() automatically rollback/commit?begin_nested() 会自动回滚/提交吗?
【发布时间】:2021-02-21 10:13:22
【问题描述】:

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

with db.session.begin_nested:
    # do something

如果抛出IntegrityError,会自动调用db.session.rollbank()吗?反之,如果不抛出异常,会不会自动调用db.session.commit()

【问题讨论】:

    标签: python sqlalchemy


    【解决方案1】:

    如果将事务(例如来自begin_nested 的事务)用作上下文管理器,则事务将在退出时提交,或者如果块中或提交期间出现错误则回滚。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-10-29
      • 2016-08-30
      • 1970-01-01
      • 2021-07-17
      • 2017-11-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多