1. 程式人生 > 其它 >MySQL:不可重複讀演示

MySQL:不可重複讀演示

不可重複讀: 同一個事務中,進行查詢操作,但是每次讀取的資料內容是不一樣的

1. 恢復資料 (把資料改回初始狀態)

2. 開啟兩個 視窗A 和 視窗B,選擇資料庫後 開啟事務

use db2; 
start transaction;

  

3. B 視窗開啟事務後, 先進行一次資料查詢

select * from account;

4.在 A 視窗開啟事務後,將使用者tom的賬戶 + 500 ,然後提交事務

-- 修改資料  
update account set money = money + 500 where name = 'tom'; 
-- 提交事務
commit
;

5.B 視窗再次查詢資料

  • 兩次查詢輸出的結果不同,到底哪次是對的?
  • 不知道以哪次為準。 很多人認為這種情況就對了,無須困惑, 當然是後面的為準。
    •   我們可以考慮這樣一種情況:
      •   

        比如銀行程式需要將查詢結果分別輸出到電腦螢幕和發簡訊給客 戶,結果在一個事務 中針對不同的輸出目的地進行的兩次查詢不一致,導致檔案和螢幕中的結果不一致,銀 行工作 人員就不知道以哪個為準了