首页 > 解决方案 > MySQL/MariaDB 不回滚事务

问题描述

我正在尝试进行交易,然后回滚。

我的代码如下:

SET autocommit = OFF;
START TRANSACTION;
DROP TABLE IF EXISTS Test;
CREATE TABLE Test (test INT);
ROLLBACK;

但是,即使我调用ROLLBACK,表Test仍然会被创建。

这些表使用 InnoDB。我正在使用 MariaDB 版本 10.3.15。

标签: mysqlmariadbcreate-tablerollback

解决方案


https://dev.mysql.com/doc/refman/8.0/en/implicit-commit.html

... InnoDB 中的 CREATE TABLE 语句作为单个事务处理。这意味着来自用户的 ROLLBACK 不会撤消用户在该事务期间所做的 CREATE TABLE 语句。


推荐阅读