一. 前言
最近有学生出去面试,被问到这样一个题目:【假设目前你们使用的数据库是MySQL,现在有一个事务A,在事务A开始时读取到的数据结果是1;事务A中间有一段耗时操作,在事务A中做耗时操作的同时,有另外一个事务B把数据值改成了2并提交了**。请问在事务A中,**再一次查询该数据的结果应该是1还是2,并且说明原因】如下图所示:
![](https://img-blog.csdnimg.cn/ff033ff34dd94853b095d059a808cfa3.png)
二. 执行结果
在讲清楚这个问题之前,壹哥要先和大家一起打开数据库,看看这个问题的执行结果。我们可以首先创建一张表,这个表的名字叫做【tb_test】,并且插入一条数据,如下图所示:
![](https://img-blog.csdnimg.cn/3a93161607654c489e30d7ce28aecb43.png)
接下来壹哥再开启一个事务A,在事务A中,我们首先查询出id=1这一行中d列的结果。