MySQL "Error Code 1305: SAVEPOINT a does not exist"

MySQL "Error Code 1305: SAVEPOINT a does not exist"

我刚开始学习 MySQL 并且刚刚了解了保存点和回滚。

我这样做了:

START TRANSACTION;

CREATE TABLE test (
    c1 int,
    c2 varchar(10)
);

INSERT INTO test VALUES ('1', 'LINHA1');

SAVEPOINT A;

INSERT INTO test VALUES ('2', 'LINHA2');

ROLLBACK TO SAVEPOINT A;

当我运行“回滚到保存点A”时,它说“保存点a不存在”。

在mysql中,DDL(如CREATE TABLE)不能在事务内。您的 CREATE TABLE 正在结束您的事务,此后的每个语句都是 auto-committed,因此在您执行 ROLLBACK 时没有保存点 A。