MySQL事务回滚机制详解
作者:技术拾光时间:2026-07-19 19:41:09浏览:120
MySQL事务回滚机制通过异常处理,在发生主键冲突等错误时自动撤销所有修改,确保数据一致性和完整性。正常操作则提交并持久化。该机制利用BEGIN、COMMIT、ROLLBACK实现,保证事务的原子性、一致性、隔离性和持久性(ACID)。
1. 进入 MySQL,在 test 库中创建一张新表并录入初始数据
这是后续操作的基础。
2. 在 test 数据库中创建名为 shiwu 的存储过程
这个存储过程就是我们要测试的事务逻辑主体。
3. 定义 SQL 语句时,必须设置异常处理机制
简单来说,就是告诉 MySQL:“一旦出现异常,立即将数据回滚到之前的状态,并停止当前 BEGIN END 块中剩余的操作。”这一步是事务回滚的“保险栓”。
4. 开启事务:执行 START TRANSACTION 命令
从此开始,所有数据修改都在一个“临时”区域内进行,直到你决定提交或回滚。
5. 尝试将 id 为 2 的记录修改为 id = 1
由于主键冲突(id = 1 已存在),唯一性约束被违反。按照第 3 步设置的异常处理,事务会立即终止并退出 begin-end 块,所有改动自动撤销。
6. 提交事务
如果一切顺利,则返回“提交成功!”的结果集。
7. 提交成功!
8. 调用事务函数,执行其中的操作流程
这是测试事务是否正常工作的关键步骤。
9. 修改数据出错时,SQL 异常触发回滚操作
数据会原封不动地回到修改之前的样子。
10. 更新数据为:
11. 执行过程中事务成功,将 id 更新为 6
这一步表明,只要没有触发异常,正常的修改会被提交并持久化。

