我们可以借助SAVEPOINT在MySQL中处理嵌套事务。
首先,创建一个表。之后,开始事务。
现在,在上面创建的表中插入记录。使用SAVEPOINT语句设置一个带有标识符名称的命名事务保存点。
这是以查询形式显示的所有步骤-
建立表格
mysql> create table NestedTransactionDemo -> ( -> Name varchar(200) -> );
开始事务-
mysql> START TRANSACTION;
现在,在表中插入一条记录
mysql> insert into NestedTransactionDemo values('John');
显示上面添加的记录-
mysql> select *from NestedTransactionDemo; +------+ | Name | +------+ | John | +------+ 1 row in set (0.00 sec)
让我们开始处理事务以创建嵌套事务-
mysql> savepoint transaction2; mysql> insert into NestedTransactionDemo values('David'); mysql> select *from NestedTransactionDemo; +-------+ | Name | +-------+ | John | | David | +-------+ 2 rows in set (0.00 sec) mysql> rollback to transaction2; mysql> select *from NestedTransactionDemo; +------+ | Name | +------+ | John | +------+ 1 row in set (0.00 sec) mysql> rollback to transaction2;