我正在尝试进行交易,然后回滚。
我的代码如下:
SET autocommit = OFF;
START TRANSACTION;
DROP TABLE IF EXISTS Test;
CREATE TABLE Test (test INT);
ROLLBACK;
但是,即使我调用ROLLBACK
,表Test
仍将被创建。
表使用InnoDB。我正在使用MariaDB版本10.3.15。
答案 0 :(得分:3)
https://dev.mysql.com/doc/refman/8.0/en/implicit-commit.html
... InnoDB中的CREATE TABLE语句作为单个事务处理。这意味着,来自用户的ROLLBACK不会撤消用户在该事务期间所做的CREATE TABLE语句。