大家好,我是考100分的小小码 ,祝大家学习进步,加薪顺利呀。今天说一说什么是mysql的事务_MySQL运行,希望您对编程的造诣更进一步.
什么是mysql事务场景?
1、场景
一组sql(增删改)要么都执行,要么都不执行。
场景:A有10000元
B有10000元
A向B转账500,是两条更新
update bill set 余额=余额-500 where A;
update bill set 余额=余额+500 where B;
这两条数据必须要么都执行,要么都不执行,如果执行了一半,发生问题,那么执行过的sql要回滚。
2、事务(transaction)的讲解
什么是事务?
事务是应用程序中一系列严密的操作,所有操作必须成功完成,否则在每个操作中所作的所有更改都会被撤消。
事务的优点
(1) A(atomicity) 原子性。事务里面的操作,要么全部成功执行,要么全部失败回滚,不可以只执行其中的一部分。
(2) C(consistency) 一致性。一个事务的执行不应该破坏数据库的完整性约束。
(3)I(isolation) 隔离性。通常来说,事务之间的行为不应该互相影响。
(4)D(durability) 持久性。事务提交之后,需要将提交的事务持久化到磁盘。即使系统崩溃,提交的数据也不应该丢失。
使用事务的好处
在修改数据的操作中保持数据的完整性.
事务的使用
语法
开启事务: start transaction 或 begin [work]
sql语句的执行
提交事务commit
回滚事务:rollback;
在事务开始和结束之间的这些sql,就在同一个事务中。
例题
创建表并且插入数据
创建表:
create table info(
id int auto_increment primary key,
name varchar(5),
money decimal(10,2)
);
insert into info values(1,'张三',1000);
insert into info values(2,'李四',1000);
例题:让张三给李四成功转50块
开启事务:start transaction;
让张三少50块,李四多50块
update info set money=money-50 where id=1;
update info set money=money+50 where id=2;
查询sql执行的结果
重新打开一个mysql客户端查看数据;
数据并未发生变化
提交事务:commit
另一个客户端中的数据
例题:让张三给李四转50块失败
另一个客户端的数据:
最后执行回滚,转账失败
总结:事务保持数据的完整性,具有原子性。
喜欢可以关注一下哦。
半夜的一次斜眸,我发现了支付宝灰色产业的一角
得知开源会削弱对中国的技术封锁,特朗普气炸了
用漫画让你清楚了解linux内核,看懂了么?
你用大量 if else,而不用switch的原因,if真香啊
能在996公司久呆的人,到底有多会划水?
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
转载请注明出处: https://daima100.com/11605.html