新增AI编程课程,引领技术教育新趋势
事务A,先执行,处于未提交的状态:
insert into t values(4, 'zhaoliu');
事务B,后执行,也未提交:
select * from t;
如果事务B能够读取到(4, zhaoliu)这条记录,说明事务A就对事务B产生了影响,这种影响叫做“读脏”,即读到了未提交事务操作的记录。
事务A,先执行:
select * from t where id=1;
结果集为
1,zhangsan
事务B,后执行,并且提交:
update t set name=xxx where id=1;
commit;
事务A,再次执行相同的查询:
select * from t where id=1; 结果集为: 1, xxx
这次是已提交事务B对事务A产生的影响,这种影响叫做“不可重复读”,即一个事务内相同的查询,却得到了不同的结果。