我刚刚开始学习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”时,它说“ SAVEPOINT a不存在”。
答案 0 :(得分:2)
在mysql中,DDL(例如CREATE TABLE)不能在事务内。您的CREATE TABLE正在结束您的事务,并且此后的每个语句都是自动提交的,因此在执行ROLLBACK时没有保存点A。