2009-10-06 152 views
1

我對這裏的文檔有些困惑。我有一個交易,這mysql隔離級別

  1. 開始交易
  2. 做了一些更新
  3. 做一些選擇
  4. 做一些更多的更新
  5. 提交

我想我的選擇步驟以查看步驟中的更新結果,但我想能夠回滾整個事情。

提交讀似乎在暗示,選擇只顯示一個已經提交的數據,以及重複的讀取似乎暗示所有後續選擇將看到相同的數據,在第一次時存在選擇 - 從而忽視我更新。 讀取未提交似乎做的是正確的事情,但:「但可能會使用一個可能的早期版本的行」 - 這也是不可接受的,因爲我的選擇必須看到我的更新結果。

可序列化真的是我唯一的希望嗎?

我工作過的文檔here

回答

2

事務隔離級別只描述併發交易之間的相互作用。在任何隔離級別下,您在同一事務內更新的內容將在您從該事務中重新選擇時更新。

您的案例中的正確隔離級別似乎是讀取提交的,因此您可以在任何時候回滾,並且未提交的數據在其他事務中不可見。