django事务:手动提交和自动提交的区别
来源:4-15 事务处理(下)
饿少
2021-06-02 17:17:18
问题一:两者的区别是不是就是:
自动提交事务:可以自动捕获异常并进行回滚操作。
手动提交事务:是自行捕获异常时才需要进行的操作。
问题二:手动提交事务时为什么要使用
transcation.set_autocommit(False) #放弃自动提交事务
我又没设置自动提交事务,为什么要设置放弃?
我的推测:视图函数中的单行ORM操作(比如objects.create(...)),自带 提交事务
这个设置是关闭了单行代码的事务提交?
为什么说单行代码,因为如果整体函数看作是一个事务,有一条出错,那么不会提交,只有单行代码才能解释通。
请老师就我的问题,和推测是否正确,给出相应回答
1回答
同学,你好!
问题一:同学的理解是正确的
问题二:默认情况下,django的事务是自动提交的。是关闭了整个事务的自动提交,整体函数会看作一个事务,当事务中的代码报错时会执行回滚操作
祝学习愉快!
相似问题