事务

wuchangjian2021-11-03 12:13:50编程学习

 

什么是事务

"""
开启一个事务可以包含多条sql语句 这些sql语句要么同时成功
要么一个都别想成功 称之为事务的原子性
"""

事务的作用

"""
保证了对数据操作的安全性
"""
eg:还钱的例子
    egon用银行卡给我的支付宝转账1000
    	1 将egon银行卡账户的数据减1000块
        2 将jason支付宝账户的数据加1000块
    
   	你在操作多条数据的时候可能会出现某几条操作不成功的情况(egon银行卡数据减1000块后突然断网jason没有收到钱 因此用到了事务保证对数据操作的安全性)
 

 

事务的四大特性

"""
ACID
A:原子性
	一个事务是一个不可分割的单位,事务中包含的诸多操作
	要么同时成功要么同时失败
C:一致性
	事务必须是使数据库从一个一致性的状态变到另外一个一致性的状态
	一致性跟原子性是密切相关的
I:隔离性
	一个事务的执行不能被其他事务干扰
	(即一个事务内部的操作及使用到的数据对并发的其他事务是隔离的,并发执行的事务之间也是互相不干扰的)
D:持久性
	也叫"永久性"
	一个事务一旦提交成功执行成功 那么它对数据库中数据的修改应该是永久的
	接下来的其他操作或者故障不应该对其有任何的影响
"""

如何使用事务

# 事务相关的关键字
# 1 开启事务
start transaction;
# 2 回滚(回到事务执行之前的状态)   :可以理解为当一条数据出现问题时 全部的数据都要失败
rollback;
# 3 确认(确认之后就无法回滚了)
commit;

"""模拟转账功能"""
create table user(
	id int primary key auto_increment,
    name char(16),
    balance int
);
insert into user(name,balance) values
('jason',1000),
('egon',1000),
('tank',1000);


# 1 先开启事务
start transaction;
# 2 多条sql语句
update user set balance=900 where name='jason';
update user set balance=1010 where name='egon';
update user set balance=1090 where name='tank';

rollback;

# 当发现数据不合理的时候可以进行回滚操作 然后数据又回到原来1000的数据

commit;
# 当commit确认数据后再进行回滚操作就会失败了

"""
总结
	当你想让多条sql语句保持一致性 要么同时成功要么同时失败 
	你就应该考虑使用事务
"""

 

 

相关文章

大数据方法论之Nutch基于Map-Reduce的爬取方法

大数据方法论之Nutch基于Map-Reduce的爬取方法

随着人工智能的兴起,大数据又火了起来,大数据的方法论的本质是...

@长沙人,8月13日起点外卖记得先领券,最高减30元

@长沙人,8月13日起点外卖记得先领券,最高减30元

2022-08-13 13:17:47 虽已立秋,但高温天气仍在持续,...

探店视频“看钱行事”,给钱就好吃?

探店视频“看钱行事”,给钱就好吃?

2022-08-12 08:17:47 社交媒体时代,人们越来越习惯从...

与农夫山泉抢地盘,喜茶、奈雪涉足瓶装市场有多少胜算?

与农夫山泉抢地盘,喜茶、奈雪涉足瓶装市场有多少胜算?

市场永远不缺跨界,这一次,现制茶饮将手伸向了瓶装饮料。一面是...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。