You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MySQL中ROLLBACK命令无法生效?求问题原因解析

问题原因分析

导致ROLLBACK未生效的常见原因有以下几种:

1. 数据库开启了自动提交(AUTOCOMMIT)模式

多数关系型数据库(如MySQL)默认开启自动提交,每执行一条DML(INSERT/UPDATE/DELETE)语句后会自动提交事务。这种情况下:

  • 执行INSERT语句后,事务已自动提交,数据永久写入数据库;
  • 执行DELETE语句后,该操作也被自动提交;
  • 最后执行ROLLBACK时,没有未提交的事务可以回滚,自然看不到数据恢复。

你可以通过以下命令查看当前自动提交状态:

SELECT @@AUTOCOMMIT;

返回1表示开启自动提交,返回0表示关闭。

2. 表的存储引擎不支持事务

如果employees表使用的是不支持事务的存储引擎(比如MySQL的MyISAM、MEMORY),所有DML操作都会即时生效且无法回滚。只有InnoDB、PostgreSQL默认引擎这类支持事务的引擎,才能配合ROLLBACK实现事务回滚。

可以通过以下语句查看表的存储引擎:

SHOW CREATE TABLE employees;

在结果中找到ENGINE=后的字段即可确认。

3. 事务已被显式提交

如果在INSERT或DELETE操作后执行过COMMIT命令,对应的事务已经被永久提交,后续的ROLLBACK无法撤销已提交的操作。


内容的提问来源于stack exchange,提问作者nguyencuc2386

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 06:35:27