1. 程式人生 > >事務的隔離級別的演示:避免臟讀和不可重復讀的發生

事務的隔離級別的演示:避免臟讀和不可重復讀的發生

事務的隔離級別演示

1.1.1 避免臟讀,演示不可重復讀發生
l 開啟兩個窗口A,B
l 設置A窗口的隔離級別為read committed;
SET SESSION TRANSACTION ISOLATION LEVEL read committed;
技術分享圖片
l 分別在兩個窗口中開啟事務:
start transaction;
l 在B窗口中完成轉賬
update account set money = money - 1000 where name= ‘小張‘;
update account set money = money + 1000 where name= ‘小鳳‘;
技術分享圖片
* 沒有提交事務!!!
l 在A窗口中進行查詢:
select from account;
技術分享圖片
發現這個時候沒有轉賬成功!!!(沒有查詢到另一個事務未提交的數據:說明已經避免了臟讀)。
l 在B窗口中提交事務
commit;
l 在A窗口查詢
select * from account;
技術分享圖片
***** 發現這次的結果已經發生了變化!!!(已經發生不可重復讀:一個事務已經讀到了另一個事務提交的update的數據,導致多次查詢結果不一致。)

事務的隔離級別的演示:避免臟讀和不可重復讀的發生