我們如何在 MySQL 中使用巢狀事務?


我們可以藉助 SAVEPOINT 在 MySQL 中處理巢狀事務

首先,建立一個表。然後開始事務

現在,在上面建立的表中插入記錄。使用 SAVEPOINT 語句使用識別符號為名稱設定一個命名的事務儲存點

以查詢的形式顯示所有這些步驟 −

建立表

mysql> create table NestedTransactionDemo
   -> (
   -> Name varchar(200)
   -> );
Query OK, 0 rows affected (0.63 sec)

開始事務 −

mysql> START TRANSACTION;
Query OK, 0 rows affected (0.00 sec)

現在,在表中插入記錄

mysql> insert into NestedTransactionDemo values('John');
Query OK, 1 row affected (0.04 sec)

顯示上面新增的記錄 −

mysql> select *from NestedTransactionDemo;
+------+
| Name |
+------+
| John |
+------+
1 row in set (0.00 sec)

讓我們開始使用事務來建立巢狀事務 −

mysql> savepoint transaction2;
Query OK, 0 rows affected (0.00 sec)
mysql> insert into NestedTransactionDemo values('David');
Query OK, 1 row affected (0.00 sec)
mysql> select *from NestedTransactionDemo;
+-------+
| Name  |
+-------+
| John  |
| David |
+-------+
2 rows in set (0.00 sec)

mysql> rollback to transaction2;
Query OK, 0 rows affected (0.00 sec)

mysql> select *from NestedTransactionDemo;
+------+
| Name |
+------+
| John |
+------+
1 row in set (0.00 sec)

mysql> rollback to transaction2;
Query OK, 0 rows affected (0.00 sec)

更新時間:2019 年 7 月 30 日

2 千次以上瀏覽

開啟你的 職業生涯

完成課程以獲得認證

開始
廣告