事務的4種隔離級別
阿新 • • 發佈:2019-01-01
#首先修改隔離級別 set tx_isolation='read-committed'; select @@tx_isolation; +----------------+ | @@tx_isolation | +----------------+ | READ-COMMITTED | +----------------+ #事務A:啟動一個事務 start transaction; select * from tx; +------+------+ | id | num | +------+------+ | 1 | 1 | | 2 | 2 | | 3 | 3 | +------+------+ #事務B:也啟動一個事務(那麼兩個事務交叉了) 在這事務中更新資料,且未提交 start transaction; update tx set num=10 where id=1; select * from tx; +------+------+ | id | num | +------+------+ | 1 | 10 | | 2 | 2 | | 3 | 3 | +------+------+ #事務A:這個時候我們在事務A中能看到資料的變化嗎? select * from tx; ---------------> +------+------+ | | id | num | | +------+------+ | | 1| 1 |--->並不能看到! | | 2 | 2 | | | 3 | 3 | | +------+------+ |——>相同的select語句,結果卻不一樣 | #事務B:如果提交了事務B呢? | commit; | | #事務A: |select * from tx; ---------------> +------+------+ | id | num | +------+------+ | 1 | 10 |--->因為事務B已經提交了,所以在A中我們看到了資料變化 | 2 | 2 | | 3 | 3 | +------+------+