事務隔離級別
檢視mysql系統的事務隔離級別:
mysql> select @@global.tx_isolation;
+-----------------------+
| @@global.tx_isolation |
+-----------------------+
| repeatable-read |
+-----------------------+
1 row in set (0.00 sec)
檢視mysql會話的事務隔離級別:mysql> select @@tx_isolation;
+-----------------+
| @@tx_isolation |
+-----------------+
| repeatable-read |
+-----------------+
1 row in set (0.00 sec)
mysql> select @@session.tx_isolation;
+------------------------+
| @@session.tx_isolation |
+------------------------+
| repeatable-read |
+------------------------+
1 row in set (0.00 sec)
設定系統的事務隔離級別:mysql> set global transaction isolation level read committed;
query ok, 0 rows affected (0.00 sec)
mysql> select @@global.tx_isolation;
+-----------------------+
| @@global.tx_isolation |
+-----------------------+
| read-committed |
+-----------------------+
1 row in set (0.00 sec)
mysql> select @@tx_isolation;
+-----------------+
| @@tx_isolation |
+-----------------+
| repeatable-read |
+-----------------+
1 row in set (0.00 sec)
設定會話的事務隔離級別mysql> set session transaction isolation level read committed;
query ok, 0 rows affected (0.00 sec)
mysql> select @@global.tx_isolation;
+-----------------------+
| @@global.tx_isolation |
+-----------------------+
| read-committed |
+-----------------------+
1 row in set (0.00 sec)
mysql> select @@tx_isolation;
+----------------+
| @@tx_isolation |
+----------------+
| read-committed |
+----------------+
1 row in set (0.00 sec)
mysql預設是自動提交事務的,檢視autocommit變數:mysql> select @@autocommit;
+--------------+
| @@autocommit |
+--------------+
| 1 |
+--------------+
1 row in set (0.01 sec)
設定mysql不自動提交事務:mysql> set autocommit = 0;
query ok, 0 rows affected (0.00 sec)
mysql> select @@autocommit;
+--------------+
| @@autocommit |
+--------------+
| 0 |
+--------------+
1 row in set (0.01 sec)
使用rollback回滾事務mysql> select * from t1;
empty set (0.00 sec)
mysql> insert into t1 values (51, 3000);
query ok, 1 row affected (0.00 sec)
mysql> select * from t1;
+----+------+
| a | b |
+----+------+
| 51 | 3000 |
+----+------+
1 row in set (0.00 sec)
mysql> rollback;
query ok, 0 rows affected (0.03 sec)
mysql> select * from t1;
empty set (0.00 sec)
mysql>
使用start transaction;或begin;顯示的開啟乙個事務:mysql> start transaction;
query ok, 0 rows affected (0.00 sec)
mysql> begin;
query ok, 0 rows affected (0.00 sec)
mysql> insert into t1 values (51, 3000);
query ok, 1 row affected (0.00 sec)
mysql> select * from t1;
+----+------+
| a | b |
+----+------+
| 51 | 3000 |
+----+------+
1 row in set (0.00 sec)
mysql> rollback;
query ok, 0 rows affected (0.04 sec)
mysql> select * from t1;
empty set (0.00 sec)
mysql> commit;
query ok, 0 rows affected (0.00 sec)
mysql> select * from t1;
empty set (0.00 sec)
MySQL高階 事務和鎖
什麼是事務 一件事就可以事務,事務就是操作過程合集統稱 事務的特性 原子性 一段事務中,要麼全部完成,要麼都不完成 隔離性 兩個客戶同時操作同樣的事務的解決方案,應用及其廣泛,所以針對以上情況出現了事務的隔離級別 讀未提交 read uncommitted 讀提交 read committed 可重...
mysql 事務管理(高階) 待續
請口述以下問題 什麼是事務到特性,具體說說你到理解 請舉乙個案例描述為什麼要用到事務 賬 事務的隔離級別 待續。a b a給b轉賬100 正常mysql流程 a賬戶b賬戶 a 100 b 100 可能情況 情況a賬戶b賬戶 第一種a 100 b 100 第二種a 100 b第三種 ab 100 第四...
mysql 事務管理(高階) 待續
請口述以下問題 什麼是事務到特性,具體說說你到理解 請舉乙個案例描述為什麼要用到事務 賬 事務的隔離級別 待續。a b a給b轉賬100 正常mysql流程 a賬戶b賬戶 a 100 b 100 可能情況 情況a賬戶b賬戶 第一種a 100 b 100 第二種a 100 b第三種 ab 100 第四...