首页 > 解决方案 > MySQL“错误代码 1305:SAVEPOINT a 不存在”

问题描述

我刚开始学习 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 不存在”。

标签: mysqlrollback

解决方案


在 mysql 中,DDL(如 CREATE TABLE)不能在事务中。您的 CREATE TABLE 正在结束您的事务,此后的每条语句都会自动提交,因此在您执行 ROLLBACK 时没有保存点 A。


推荐阅读