mysql - 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 不存在”。
解决方案
在 mysql 中,DDL(如 CREATE TABLE)不能在事务中。您的 CREATE TABLE 正在结束您的事务,此后的每条语句都会自动提交,因此在您执行 ROLLBACK 时没有保存点 A。
推荐阅读
- javascript - 使用 jinja2 仅渲染 HTML
- php - 通过比较时间设置每日限制()
- ios - 刷新后保持表格单元格删除而不触及数据库中的帖子
- algorithm - 是否可以从 (a,b) 移动到 (c,d)
- android - 获取 METHOD GET JSON 改造的问题
- microsoft-graph-api - /security/alerts 未从 Azure 身份保护 (IPC) 返回
- docker - 当我在 dockerfile 中公开一个端口并且它成功构建但在服务器中没有响应时
- r - 如何紧凑地定义一个列表?
- typescript - 如何通过 vscode 扩展为特定文件提供智能感知?
- plsql - sys_refcursor 结果不可见