- 上選擇舊數據開始交易TX1
- TX1執行
SELECT
- 提交TX1
- BEGIN TRANSACTION Tx2的在不同的會話,使用不同的連接
- Tx2的執行在一個Tx2的
SELECT
- 更新行
- 提交Tx2的
- 開始一個新的事務,TX1
- 執行選擇 - 獲得來自步驟2的結果(?)
- 提交TX1
- BEGIN TRANSACTION TX1
- 執行選擇 - 得到正確的結果,即從Tx2的承諾更新
非常困惑......這是怎麼發生的?它發生可靠和一貫。的InnoDB/MySQL的 - 新的事務使用,而不是返回更新的數據
如果8在7結束之前開始,並且您正在使用'READ UNCOMITTED'之上的隔離級別,則可能發生這種情況。 –
事實並非如此:(7肯定是在8 – user2482461