如何使用 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)

相关文章