我正在为我的网络应用程序使用 SQLAlchemy。我见过很多这样的代码:
try:
session.commit()
except:
session.rollback()
我想知道每个 commit()
操作是否有必要。如果是,那为什么它不是 commit()
操作的一部分?如何决定何时 rollback()
何时不?
最佳答案
当提交失败时,它只是意味着事务不能在不破坏某些约束的情况下完成。所以原则上,您可以进行一些更新并再次尝试提交,而不是回滚。
在实践中,这种错误恢复逻辑并不容易推理,因此大多数人只是回滚(撤消对事务所做的任何更改)以保持数据处于一致状态,并将问题传达给用户。
关于python - sqlalchemy:每次提交都需要回滚吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36381489/