【问题标题】:MySQL / MariaDB does not rollback transactionMySQL/MariaDB 不回滚事务
【发布时间】:2019-06-07 17:52:07
【问题描述】:

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

我的代码如下:

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

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

这些表使用 InnoDB。我使用的是 MariaDB 版本 10.3.15。

【问题讨论】:

  • 执行事务之前表是否存在?
  • 不,它没有。

标签: mysql mariadb create-table rollback


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-12
    • 1970-01-01
    • 2012-09-14
    • 2018-05-01
    • 2017-07-18
    相关资源
    最近更新 更多