事務的隔離級別演示 避免髒讀,演示不可重複讀發生

2021-09-25 08:08:35 字數 594 閱讀 1199

開啟兩個視窗a,b

設定a視窗的隔離級別為read committed;

set session transaction isolation level read committed;

分別在兩個視窗中開啟事務:

start transaction;

在b視窗中完成轉賬

update account set money = money - 1000 where name= '小張';

update account set money = money + 1000 where name= '小鳳';

***** 沒有提交事務!!!

在a視窗中進行查詢:

select * from account;

***** 發現這個時候沒有轉賬成功!!!(沒有查詢到另乙個事務未提交的資料:說明已經避免了髒讀)。

在b視窗中提交事務

commit;

在a視窗查詢

select * from account;

***** 發現這次的結果已經發生了變化!!!(已經發生不可重複讀:乙個事務已經讀到了另乙個事務提交的update的資料,導致多次查詢結果不一致。)

事務隔離級別 髒讀 spring 測試

建立乙個controller,寫兩個url,用於測試髒讀 一 testcontroller autowired private testservice testservice responsebody apiimplicitparams apioperation value listfordirty...

事務 隔離級別 髒讀 不可重複 幻讀

事務,就是一組運算元據庫的動作集合。如果一組 處理步驟 全部發生或者一步也不執行,我們稱該組處理步驟為乙個事務。當所有的步驟像乙個操作一樣被完整地執行,我們稱該事務被提交。由於其中的一部分或多步執行失敗,導致沒有步驟被提交,則事務必須回滾到最初的系統狀態。二 事務的併發問題 1 髒讀 事務 a讀取了...

mysql 隔離級別 髒讀 測試

修改方 查詢方 session a b autocommit off not care 修改方是為了開啟事務 isolation not care read uncommited為邊界 執行順序 左側開啟一次會話 左側第一次insert 右側第一次select 自動提交會話 顯示讀到髒讀 左側rol...