前言
理论看完必须实操!本篇用真实转账案例手把手演示事务开启、提交、回滚。
一、准备测试表
CREATE TABLE account( id INT PRIMARY KEY AUTO_INCREMENT, name VARCHAR(20), money DECIMAL(10,2) ); INSERT INTO account(name,money) VALUES ('A',1000),('B',1000);二、事务语法
BEGIN开启事务COMMIT提交事务ROLLBACK回滚事务
三、正常转账(提交)
BEGIN; UPDATE account SET money=money-100 WHERE name='A'; UPDATE account SET money=money+100 WHERE name='B'; COMMIT;四、异常场景(回滚演示)
BEGIN; UPDATE account SET money=money-100 WHERE name='A'; -- 模拟报错 UPDATE account SET money=money+100 WHERE name='不存在用户'; ROLLBACK;报错后执行回滚,A 的扣款撤销,数据安全无异常。
五、实操总结
1. 无异常手动COMMIT提交事务,数据持久化;
2. 出现异常立即ROLLBACK回滚,保证数据一致性;
3. 核心资金、订单业务,必须手动管控事务或开启自动事务管理。