四种隔离模式: read-uncommitted 、read-committed、repeatable-read、serializerable ,四种模式在 脏读、不可重复读、幻读 上有不同的表现。
查看数据库的隔离级别: select @@global.tx_isolation;
修改数据库的隔离级别: set global transaction isolation level read committed;
或者在mysql的my.ini配置文件的 [mysqld] 下添加如下全局配置 :transaction-isolation = READ-UNCOMMITTED | READ-COMMITTED | REPEATABLE-READ | SERIALIZABLE ,任选一个即可。
改完均要重启数据库才能生效
事务:访问并可能更新数据库中各种数据项的一个程序执行单元(unit)。
在Django中开启事务的方式有两种:
from django.db import transaction #先导入事务transaction,
@transaction.atomic#搞个装饰器
defpost(self,request):
sid= transaction.savepoint() #开启事务
....一系列的操作...
transaction.savepoint_rollback(sid)#回滚
transaction.savepoint_commit(sid)#提交
from django.db import transaction #导入事务transaction,
with transaction.atomic():#事务的with语句用法
sid = transaction.savepoint() #开启事务
try:
transaction.savepoint_commit(sid)#提交
except:
transaction.savepoint_rollback(sid)#回滚