MySQL数据库
模拟张三给李四转500元钱,一个转账的业务操作最少要执行下面的2条语句:
-
-
李四账号+500
手动提交事务使用步骤
第1种情况:开启事务 -> 执行SQL语句 -> 成功 -> 提交事务
第2种情况:开启事务 -> 执行SQL语句 -> 失败 -> 回滚事务

案例1:


自动提交事务

1.将金额重置为1000

2.执行以下SQL语句
UPDATE account SET balance = balance - 500 WHERE id=1;
3.使用SQLYog查看数据库:发现数据已经改变

使用SQL语句查看MySQL是否开启自动提交事务
show variables like '%commit%'; -- 或 SELECT @@autocommit; -- 推荐
通过修改MySQL全局变量"autocommit",取消自动提交事务

-- 执行SQL语句: set autocommit = 0;
5.在控制台执行以下SQL语句:张三-500
UPDATE account SET balance = balance - 500 WHERE id=1;
6.使用SQLYog查看数据库,发现数据并没有改变

7.

8.使用SQLYog查看数据库,发现数据改变

-
-
当开启事务后,后续的SQL语句会保存到临时的事务日志文件中
-
提交事务,将临时日志文件中的所有SQL语句作用到数据上
-
回滚事务,删除临时日志文件



