当前位置:首页 > MySQL

幻读和不可重复读的区别

canca10年前 (2016-07-22)MySQL779

不可重复读

不可重复读的重点是修改:

同样的条件, 你读取过的数据, 再次读取出来发现值不一样了

例子:

在事务1中,Mary 读取了自己的工资为1000,操作并没有完成
 con1 = getConnection(); 
select salary from employee empId ="Mary";
在事务2中,这时财务人员修改了Mary的工资为2000,并提交了事务.

con2 = getConnection();
update employee set salary = 2000;
con2.commit();

在事务1中,Mary 再次读取自己的工资时,工资变为了2000

//con1
select salary from employee empId ="Mary";


在一个事务中前后两次读取的结果并不致,导致了不可重复读。


幻读

幻读的重点在于新增或者删除

同样的条件, 第1次和第2次读出来的记录数不一样

例子:

目前工资为1000的员工有10人。 
事务1,读取所有工资为1000的员工。

con1 = getConnection();
Select * from employee where salary =1000;

共读取10条记录
这时另一个事务向employee表插入了一条员工记录,工资也为1000

con2 = getConnection();
Insert into employee(empId,salary) values("Lili",1000);
con2.commit();

事务1再次读取所有工资为1000的员工

 //con1 
select * from employee where salary =1000;

共读取到了11条记录,这就产生了幻像读。

扫描二维码推送至手机访问。

版权声明:本文由Ant.Master's Blog发布,如需转载请注明出处。

本文链接:https://iant.work/post/41.html

标签: MySQL
分享给朋友:

“幻读和不可重复读的区别” 的相关文章

mysql 外鍵約束

1. 什么是参照完整性?——————–参照完整性(完整性约束)是数据库设计中的一个重要概念,当数据库中的一个表与一个或多个表进行关联时都会涉及到参照完整性。比如下面这个例子:文章分类表 -  categoriescategory_id ...…

MySQl字段类型

MySQL支持大量的列类型,它可以被分为3类:数字类型、日期和时间类型以及字符串(字符)类型。本节首先给出可用类型的一个概述,并且总结每个列类型的存储需求,然后提供每个类中的类型性质的更详细的描述。概述有意简化,…

MySQL建立远程登陆用户

如果你想连接你的mysql的时候发生这个错误: ERROR 1130: Host '192.168.1.3' is not allowed to connect to this MySQL server 解决方法: 1. 改表法。可能是你的帐号不允许从远程登陆,只能在localhost。这个时候只要…

解决PHP存取MySQL 4.1乱码问题

从MySQL 4.1开始引入的多语言支持确实很棒,而且一些特性已经超过了其他的数据库系统。不过我在测试过程中发现使用适用于MySQL 4.1之前的PHP语句操作MySQL数据库会造成乱码,即使是设置过了表字符集也是如此。我读了一下新的M...…

MySQL免安装配置方法

1.下载一个安装版的。 安装版,安装后%MYSQL_HOME%\bin下有一个mysqld-nt.exe文件。将它复制出来(珍藏起来)。 2.下载一个免安装版MSYQL 将它解压。例如:E:/mysql-6.0.3-alpha-win32 将my-huge.ini另存为my.ini。 打开my.in…

MySQL备份与恢复语句

mysql备份语句:E:\MySQL Server 5.0\bin>mysqldump -uroot -padmin --default-character-set=utf8 --opt --extended-insert=false --triggers -R --hex-blob -x s…

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。