Mysql可重复读取您自己的写入行为

Mysql可重复读取您自己的写入行为,mysql,Mysql,如果我的隔离级别为可重复读取,并且我有一个带有3条语句的事务: 从表1中选择*,其中id=1(读取该行) 更新表1集合。。。其中id=1(修改行) 从表1中选择*,其中id=1(再次读取该行) 最后一个select语句会看到第二个语句所做的更改吗?当然会!所有事务都会看到自己的更改,无论它们具有何种隔离级别。是的,为什么不自己尝试一下呢?谢谢,你知道mysql文档中的哪一部分提到了这种行为吗?我想我找不到这一点,但顺序就是这样做的。您可以通过读取来检查数据,编辑数据,然后再次检查。如果您的更

如果我的隔离级别为可重复读取,并且我有一个带有3条语句的事务

  • 从表1中选择*,其中id=1(读取该行)
  • 更新表1集合。。。其中id=1(修改行)
  • 从表1中选择*,其中id=1(再次读取该行)

最后一个select语句会看到第二个语句所做的更改吗?

当然会!所有事务都会看到自己的更改,无论它们具有何种隔离级别。

是的,为什么不自己尝试一下呢?谢谢,你知道mysql文档中的哪一部分提到了这种行为吗?我想我找不到这一点,但顺序就是这样做的。您可以通过读取来检查数据,编辑数据,然后再次检查。如果您的更新有效,select将返回新值。为什么最后一次select需要成为您事务的一部分。插入后提交(释放所有锁)并让所有人都看到您的更改HERE是指向同一事务中所有一致读取的链接,读取由第一次读取建立的快照。此约定意味着,如果在同一事务中发出多个普通(非锁定)SELECT语句,则这些SELECT语句彼此之间也是一致的。