SQLPathLab
事务 · 进阶

ROLLBACK

回滚事务。

简介

ROLLBACK 取消当前尚未提交事务中的修改,并释放事务持有的相关资源。它只对当前事务内且尚未提交的操作有效,无法撤销已经提交的事务,也不能代替数据备份。发生校验失败或异常时,应由应用统一回滚,避免留下只完成一部分的业务状态。

基础语法

ROLLBACK;

示例

ROLLBACK 示例

回滚当前示例事务并显示已撤销状态,说明错误处理时如何放弃尚未提交的修改。

运行结果

transaction_effect
语句作用注意事项
ROLLBACK 撤销当前尚未提交的事务变更;若指定保存点,则只回滚到该位置。 事务的实际表现还受存储引擎、隔离级别和会话状态影响;涉及锁等待、并发或故障恢复时,应在目标 MySQL 环境做完整测试。

常见问题

BEGIN 之后必须做什么?

事务最终需要 COMMIT 持久化或 ROLLBACK 撤销,不能长期保持未结束状态。

事务能代替备份吗?

不能。事务解决一组操作的一致性,备份用于灾难恢复,两者作用不同。

为什么事务会阻塞其他请求?

未提交的修改可能持有锁;事务应尽量短,并按固定顺序访问资源。

标签

事务

这篇内容是否清楚?