MySQL:隔離性問題(髒讀)&回滾演示
阿新 • • 發佈:2021-07-14
1 髒讀演示
髒讀: 一個事務讀取到了另一個事務中尚未提交的資料
1. 開啟視窗登入 MySQL,設定全域性的隔離級別為最低
1) 登入MySQL
2)使用db2 資料庫
use db2;
3) 設定隔離級別為最低 讀未提交
set global transaction isolation level read uncommitted;
2. 關閉視窗,開一個新的視窗A ,再次查詢隔離級別
1) 開啟新的 視窗A
2) 查詢隔離級別
select @@tx_isolation;
3.再開啟一個新的視窗 B
1) 登入資料庫
2) 選擇資料庫
use db2;
3) 開啟事務
start transaction;
4) 查詢
select * from account;
4.A視窗執行
1) 選擇資料庫
use db2;
2) 開啟事務
start transaction;
3)執行修改操作
-- tom賬戶 -500元 UPDATE account SET money = money - 500 WHERE NAME = 'tom'; -- jack賬戶 + 500元 UPDATE account SET money = money + 500 WHERENAME = 'jack';
5.B視窗查詢資料
1) 查詢賬戶資訊
select * from account;
6. A視窗轉賬異常,進行回滾
rollback;
7.B視窗再次查詢賬戶
select * from account;