mysql----事务控制语言--TCL
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 | TCL:事务控制语言 事务:一个或者一组sql语句组成的一个执行单元,这个执行单元,要么都执行要么都不执行 案例;转账 张三丰 1000 郭襄 1000 场景,张三丰给郭襄转账500块钱 update 表 set 张三丰的余额=500 where name= '张三丰' ; update 表 set 郭襄的余额=1500 where name= '郭襄' ; 事务的特性ACID 这是必须要记住的 show ENGINES 事务的创建: 隐式事务:事务没有明显的开启或者结束的标记 比如,之前学习过的insert update delete 语句 显式事务;事务具有明显的开启或者结束的标记,前提是先设置自动提交功能为禁用 show VARIABLES like 'autocommit' ;--显示的是on 表示的是开启自动提交 set autocommit=0;表示将自动提交关闭掉了 事务的语法: 步骤1:开启事务 set autocommit=0; start TRANSACTION;可选的 步骤2:编写事务中的sql语句(select insert update delete ) 语句1 语句2 .。。 步骤3:结束事务 commit 提交事务 rollback:回滚事务 案例;模拟转账 create TABLE if not EXISTS account( id int, username varchar(20), balance DOUBLE(10,2) ) insert into account VALUES(1, '张无忌' ,1000); insert into account VALUES(1, '赵敏' ,1000); select * from account; #开启事务 set autocommit=0; start TRANSACTION; #编写一组事务的语句 update account set balance =1000 where username= '张无忌' ; update account set balance =1000 where username= '赵敏' ; #结束事务 #commit; ROLLBACK; SAVEPOINT:设置保存点 只能够搭配rollback使用 set autocommit=0; start TRANSACTION; #编写一组事务的语句 update account set balance=3000 where username= '张无忌' ; SAVEPOINT a; update account set balance =20000 where username= '赵敏' ; #结束事务 #commit; ROLLBACK to a; select * from account; |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY