MySQLrepeatable-read隔离级别分析

repeatable-read可以反复阅读,并在设置自动提交= 0或开始交易状态的选择表的内容不会改变。该隔离级别可能导致可读的东西已被修改。

例如:

读取a = 1字段中的一行。

在这两个会话中修改这个字段中的A=0,并提交

回到一个更新A = 0会发现这个字段,受行数影响是0,所以你可以根据受影响的行数是0或1判断修改是否成功!

这将在一些程序中有用!

会话1:

MySQL >设置自动提交= 0;

查询OK,0行受影响(0秒)

MySQL >选择*从test.dd id是1;

+ + +

| ID | AA |

+ + +

| 1 | 2 |

+ + +

1行集(0秒)

会话2:

MySQL >更新test.dd组AA = 1,ID = 1;

查询OK,1行受影响(0.09秒)

匹配行:1更改:1个警告:0

会话3:

MySQL >选择*从test.dd id是1;

+ + +

| ID | AA |

+ + +

| 1 | 2 |

+ + +

1行集(0秒)

MySQL >更新test.dd组AA = 1,ID = 1;

查询OK,0行受影响(0秒)

匹配行:1更改:0个警告:0

这里受影响的行数是0。我们可以根据这个值判断更新是否成功,在更改某些行的状态位时更有用。