SQL事务中的可序列化

时间:2017-02-11 07:13:11

标签: sql

假设T1和T2是SQL事务。执行每笔交易后,A和B的最终价值是多少?

A应该小于B.最初A是0而B是100 - T1读取原始A和B值,并将A更改为60 - T2读取原始A和B值,并将B更改为20 - 交易T1和T2都保持一致性条件“A< B“......但是A和B的最终值是什么? - 这可能发生在Serializability吗?

即使T1和T2都保持一致性条件,我认为在事务T2中检测到这个问题,因此t2被中止。我认为最终值是60和100.这是正确的吗?你能有人提供更多见解吗?

1 个答案:

答案 0 :(得分:0)

目前尚不清楚A和B是列还是变量。如果A和B是列,则以下内容适用。

在T1提交其事务之前,T2将无法更新表。在那个阶段A = 60.如果一致性条件CONSTRAINT强制执行,则T2中的更新将失败。