文章目录
脏读、不可重复读、幻读
概念很简单,网上大都差不多,讲的也都很清楚了,就是之前网上看到的实际给的例子很少,感觉理解总是不太透彻,隔断时间可能记得就不太清楚了,今天想着自己亲自实验下,试下这几个效果,加深下理解,便于记忆。
1. 脏读(事务可以读取未提交的数据)
所谓的脏读,其实就是读到了别的事务回滚前的脏数据。
比如事务B执行过程中修改了数据X,在未提交前,事务A读取了X,而事务B却回滚了,这样事务A就形成了脏读。
也就是说,当前事务读到的数据是别的事务想要修改但是没有修改成功的数据。
示例:先创建一个空表:
CREATE TABLE `account` (
`id` int(11) PRIMARY KEY AUTO_INCREMENT,
`name` varchar(50) DEFAULT NULL comment '账户名',
`balance` decimal(20,2) DEFAULT NULL comment '余额'
) comment '账户表';
旋涡鸣人开学了,初始化一个账户,先给自己充值了100块钱:
INSERT INTO account(`name`, `balance`)