"需要注意的是"
oracle数据库默认的隔离级别是:读已提交(第二级别)。
mysq1数据库默认的隔离级别是:可重复读(第三级别)。
7、演示事务的隔离级别(演示数据自己造一些)
1)演示事务之前,需要掌握的知识点。
1)mysql默认情况下,事务是自动提交的。 2)什么是自动提交? 只要是执行任意一条DML语句,则自动提交一次。 因此,在演示事务之前,必须先关闭自动提交。 "关闭自动提交语句":start transaction; 3)"演示事务需要知道的3条命令:" -- 关闭自动提交事务功能。 start transaction; -- 提交事务。 commit; -- 回滚事务,只能回滚到上一次的提交点。 rollback;
2)设置全局事务隔离级别。
"设置全局事务隔离级别,设置完成后,退出重新登陆。" -- 设置第一级别 set global transaction isolation level read uncommitted; -- 设置第二级别 set global transaction isolation level read committed; -- 设置第三级别(系统默认的事务级别,不用设置) set global transaction isolation level repeatable read; --设置第四级别 set global transaction isolation level serializable; "查看全局事务隔离级别" mysql> select @@global.tx_isolation; +-----------------------+ | @@global.tx_isolation | +-----------------------+ | REPEATABLE-READ | +-----------------------+ 1 row in set, 1 warning (0.00 sec)
3)演示读未提交。
首先,设置全局事务隔离级别。
下面进行正式的演示:
4)演示读已提交
首先,设置全局事务隔离级别。
下面进行正式的演示:
5)演示可重复读
首先,设置全局事务隔离级别。
下面进行正式的演示:
这个需要注意:
这里演示的是"可重复读",我们在右边窗口演示事务的一些列过程,左边窗口
根本无法读取,左边窗口读取到的,始终是原始数据的备份数据。
怎么理解呢?
你别忘记了,左边窗口,也是开启事务功能了的,start transaction;只要
是左边这个窗口的事务功能,没有结束(commit或者rollback都可以结束事务),那
么左边窗口读取到的,始终是原始数据的备份数据,这就是我们所说的"幻想"。任
凭右边黑窗口中做了任何改变,就算你也提交了事务,我左边窗口,就是看不到。
左边黑窗口,要怎么才可以看见这个变化呢?"
只有左边这个黑窗口,先结束了当前黑窗口的事务,重新再次读取,就可以看
到数据是真实变化了。
6)演示序列化读
首先,设置全局事务隔离级别。
下面进行正式的演示:
第一幅图:
当左边窗口,使用"commit"命令,提交事务以后,我们再看右边窗口的变化。
以上就是MySQL数据库事务transaction示例讲解教程的详细内容,更多关于MySQL数据库事务transaction的资料请关注其它相关文章!
更多Mysql内容来自木庄网络博客
标签:Mysql
相关阅读 >>
更多相关阅读请进入《mysql》频道 >>

数据库系统概念 第6版
本书主要讲述了数据模型、基于对象的数据库和XML、数据存储和查询、事务管理、体系结构等方面的内容。