如何使用 MySQL 中允许的嵌套事务?
mysqlmysqli database更新于 2024/1/24 16:35:00
我们可以借助 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)