MySQL REPEATABLE-READ隔离无法按预期工作

时间:2018-10-26 05:35:53

标签: mysql concurrency transaction-isolation

我正在使用MySQL:5.7.24。

我的隔离级别设置为“ REPEATABLE-READ”,我试图运行2个事务(T1,T2),其中命令按以下顺序进行:

<%@taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
...

<form ...>
<input type="text" name="bar" value="${fn:escapeXml(param.foo)}" />
...
</form>

我期望步骤(4)应该被阻止,因为T1已经读取了该步骤,但是这没有发生。有人可以解释我哪里错了吗?

我还有以下交易订单:

 1) T1: begin transaction  
 2) T2: begin transaction  
 3) T1: read a row R1 
 4) T2: update row R1 which is successful 
 5) T1: read the same row R1 (and gets old value) 
 6) T2: commit 
 7) T1: commit

我希望事务T2 / T1到1) T1 Begin Transaction 2) T2 Begin Transaction 3) T1 reads R1 4) T2 reads R1 5) T1 updates R1 6) T2 updates R2 7) T1 commit 8) T2 commit (以后再更新),因为它正在更新已被修改的R1(或者它被其他事务更新的时间),我该怎么办?干嘛?

0 个答案:

没有答案