MySQL(8) – MySQL的事務機制

MySQL數據庫的事務機制

1.1.事務的概念和特性

1.2.事務的隔離級別

repeatable read是mysql默認的事務隔離級別


#事務A
#事務A,臨時修改工資,未commit,
START TRANSACTION;
UPDATE t_emp SET sal=1;
#事務B,查看工資,查看不到未提交數據
START TRANSACTION;
SELECT empno,ename,sal FROM t_emp;
COMMIT;

#事務B,修改事務隔離級別,可以查看未提交數據
SET SESSION TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;
START TRANSACTION;
SELECT empno,ename,sal FROM t_emp;


#事務A,臨時修改工資,未commit,
START TRANSACTION;
UPDATE t_emp SET sal=1;
#事務B,修改事務隔離級別,無法查看未提交數據
SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED;
START TRANSACTION;
SELECT empno,ename,sal FROM t_emp;


#事務A,修改工資,commit,
START TRANSACTION;
UPDATE t_emp SET sal=1;
COMMIT;
#事務B,修改事務隔離級別,重複讀取漲工資之前的數據
SET SESSION TRANSACTION ISOLATION LEVEL REPEATABLE READ;
START TRANSACTION;
SELECT empno,ename,sal FROM t_emp;


#事務A,修改工資,commit,
START TRANSACTION;
UPDATE t_emp SET sal=1;
COMMIT;
#事務B,修改事務隔離級別序列化,等待上一次事務結束
SET SESSION TRANSACTION ISOLATION LEVEL SERIALIZABLE;
START TRANSACTION;
SELECT empno,ename,sal FROM t_emp;