2017-02-11 55 views
0

假設T1和T2是SQL事務。每次交易完成後,A和B的最終價值是什麼?SQL事務中的可串行化

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.這是正確的嗎?你能否提供更多見解?

回答

0

不清楚A和B是列還是變量。如果A和B是列,則以下適用。

在T1提交其事務之前,T2將無法更新表。在那個階段A = 60.如果一致性條件CONSTRAINT執行,那麼T2中的更新將失敗。