环境:mysql 5.7
事务隔离级别 repeatable read
表当前的记录如下:
会话一:开启事务,开启排它锁
会话二:试图更新 id = 2的数据, 被阻塞。
会话一:提交事务
会话一 提交事务,会话二 SQL成功执行
会话二 提交事务。
在会话一 查询表,发现会话二的更新没有成功
再次提交, 并重新查询,查到会话二更新的数据
我的问题是:为什么,我会话一需要再提交一次,才能查看到会话二更新的数据??
不用 for update. 就是简简单单的 开2个事务。 会话2 更新完数据,并提交事务。 会话1提交事务,并查看数据,是可以查看到 会话2更新的数据的
事务会话期间能不能看到改动和事务的隔离级别有关.
参见官方文档:
https://dev.mysql.com/doc/ref...
默认情况下是REPEATABLE READ, 可重复读,即在事务期间的多次读取返回同样的结果.
BTW:
mysql定义的四种隔离级别没有
repetable commit
这个.官网上只有
level: