我们如何使用 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)
广告