lan*_*ng2 7 python mysql sqlalchemy
我正在为我的网络应用程序使用 SQLAlchemy。我见过很多这样的代码:
try:
session.commit()
except:
session.rollback()
Run Code Online (Sandbox Code Playgroud)
我想知道是否每个操作都需要它commit()。如果是,那为什么它不是操作的一部分commit()?如何决定何时做rollback()、何时不做?
当提交失败时,仅意味着事务无法在不破坏某些约束的情况下完成。因此原则上,您可以进行一些更新并尝试再次提交,而不是回滚。
在实践中,这种错误恢复逻辑很难推理,因此大多数人只是回滚(撤消对事务所做的任何更改)以保持数据处于一致状态,并将问题传达给用户。
| 归档时间: |
|
| 查看次数: |
3154 次 |
| 最近记录: |