脏读:A用户现在访问数据,并且对数据做了修改,而这种修改还没有提交到数据库中,这时B也访问这个数据,然后使用了这个数据,但是A还没有提交到数据库呢?B就使用这个数据,就是所谓的藏读了。
幻读:A用户将一张表中的所有数据行都做了修改,以为自己已经做完了自己的工作,但是这时B用户也来操作这张表,而B是向这张表插入了一行数据,这时A想“为了保险起见,我还是在看看吧”,结果一点刷新“唉,怎么回事,见鬼了啊,刚才一共N行数据a,现在怎么成了N+1行”。
不可重复读:A一直在执行select * from student where sno='4',不知道什么时候B来了,而A的这个事务还没结束,这是B执行了update student set sname='jack' where sno='4',这是A又执行了一次读取操作,结果发现“额,怎么回事,又见鬼了?” |