我們如何使用 MySQL 中允許的巢狀事務?
我們藉助 START 命令和 SAVEPOINT 允許多項事務。讓我們藉助 CREATE 命令建立一個表。
建立一個表
mysql> CREATE table transactionDemo -> ( -> id int auto_increment, -> primary key(id) -> ); Query OK, 0 rows affected (0.76 sec)
之後,我將藉助 START 命令開始一項事務 −
mysql> START TRANSACTION; Query OK, 0 rows affected (0.00 sec)
之後,我藉助 INSERT 命令插入以下記錄 −
mysql> INSERT into transactionDemo values(); Query OK, 1 row affected (0.04 sec)
我們可以藉助 SELECT 語句顯示一條記錄,如下所示 −
mysql> SELECT *from transactionDemo;
以下是輸出
+----+ | id | +----+ | 1 | +----+ 1 row in set (0.00 sec)
之後,我藉助 SAVEPOINT 儲存此查詢。查詢如下 −
mysql> SAVEPOINT t2;
插入記錄
mysql> INSERT into transactionDemo values(); Query OK, 1 row affected (0.00 sec)
藉助 SELECT 命令顯示所有記錄 −
mysql> SELECT *from transactionDemo;
以下是輸出
+----+ | id | +----+ | 1 | | 2 | +----+ 2 rows in set (0.00 sec)
現在,我們可以回滾第一項事務 −
mysql> ROLLBACK TO t2; Query OK, 0 rows affected (0.03 sec)
現在,我們可以顯示先前儲存的事務 −
mysql> SELECT * from transactionDemo;
以下是輸出
+----+ | id | +----+ | 1 | +----+ 1 row in set (0.00 sec)
廣告