MySQL数据库事务transaction示例讲解教程


当前第2页 返回上一页

"需要注意的是"
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优化视频资料分享

简单介绍mysql中索引的使用方法

mysql如何自动生成大量数据

浅谈mysql jdbc streamresult通信原理

mysql索引如何使用

create需要commit么

mysql循环插入数据的代码示例

mysql的表空间是什么

mysql创建表命令是哪句

mysql启动报错的解决方法

更多相关阅读请进入《mysql》频道 >>


数据库系统概念 第6版
书籍

数据库系统概念 第6版

机械工业出版社

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



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...