ROLLBACK
ROLLBACK 回滚事务——撤销当前事务中所有未提交的修改,回到事务开始前的状态。它是事务的"安全网":在事务中执行一系列操作,如果中途发现问题(余额不足、数据不一致、业务逻辑错误),随时 ROLLBACK 取消所有操作,数据库恢复原状。
ROLLBACK 只对当前事务有效,不能回滚其他事务的修改。一旦 COMMIT 了,ROLLBACK 也无济于事。这就是为什么生产环境的敏感批量操作一定要先小范围测试再全量执行。
以飞翔科技为例。批量更新员工工资,发现错误后回滚:
-- 批量给技术部员工加薪 10%
START TRANSACTION;
UPDATE employees
SET basic_salary = basic_salary * 1.1
WHERE dept_code = 2;
-- 检查影响行数
SELECT ROW_COUNT() AS 影响行数;
-- 发现加错了,应该只加绩效奖金,不是基本工资
-- 立即回滚
ROLLBACK;
-- 重新开始
START TRANSACTION;
UPDATE employees
SET performance_bonus = performance_bonus * 1.1
WHERE dept_code = 2;
COMMIT;
ROLLBACK 也用于异常处理。在程序代码中,通常用 try-catch 结构:try 里执行事务,catch 里 ROLLBACK,确保异常时数据不脏。ROLLBACK 不是失败,而是"安全地取消"——它保证了数据一致性,是数据库可靠性的基石。