事物_基本演示、事物_自动提交&手动提交
事物_基本演示
事物的基本介绍
概念:
如果一个包含多个业务的操作,被事物管理,要么同时成功,要么同时失败
图解:
操作:
开启事物: start transaction;
回滚: rollback;
提交:commit;
案例:
-- 张三账户-500
UPDATE account set account.balance= balance -500 WHERE name="张三";
-- 李四账户+500
UPDATE account set account.balance= balance +500 WHERE name="李四";
假如张三给李四转账的时候 转过去了 但是李四没有收到 那么500元就不翼而飞了 那么这时候就需要使用事物
-- 开启事物
START TRANSACTION;
-- 张三账户-500
UPDATE account set account.balance= balance -500 WHERE name="张三" 出错...;
-- 李四账户+500
UPDATE account set account.balance= balance +500 WHERE name="李四";
-- 发现问题是回滚
ROLLBACK;
我故意加一个出错 ,然后使用事物看一下会不会执行成功
并没有执行
那么我们把出错解决了
-- 开启事物
START TRANSACTION;
-- 张三账户-500
UPDATE account set account.balance= balance -500 WHERE name="张三" ;
-- 李四账户+500
UPDATE account set account.balance= balance +500 WHERE name="李四";
-- 发现问题是回滚
ROLLBACK;
这次执行成功!
事物_自动提交&手动提交
-- 开启事物
START TRANSACTION;
-- 张三账户-500
UPDATE account set account.balance= balance -500 WHERE name="张三" ;
-- 李四账户+500
UPDATE account set account.balance= balance +500 WHERE name="李四";
-- 发现问题是回滚
ROLLBACK;
刚才我们看到 ,没有写提交语句但是也是提交上去了,这就是自动提交
那么手动提交需要我们手动来写
-- 开启事物
START TRANSACTION;
-- 张三账户-500
UPDATE account set account.balance= balance -500 WHERE name="张三" ;
-- 李四账户+500
UPDATE account set account.balance= balance +500 WHERE name="李四";
-- 发现问题是回滚
ROLLBACK;
-- 提交事物
COMMIT;
这就是手动提交
事物的提交的两种方法
手动提交:需要先开启事物,在手动提交
自动提交:sql就是自动提交的
查看提交方式:
SELECT @@autocommit
如果是一的话 就是自动提交,0的话就是手动提交
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY