MySQL高级笔记整理__Sql事务

3. 事务

# 1. 事务
# 1.1 事务:一个事务就是完成某一个操作的一组sql语句的集合。
# 1.2 mysql早期的存储引擎使用的是myisam,他是一个不支持事务的存储引擎
#     mysql把存储引擎换为了innerdb,他是支持事务处理的存储引擎。
# 1.3 事务特点:定义在一个事务中的一组sql语句要么都生效,要么都不生效,
#               可以保证某一个操作的数据的安全性。
# 1.4 注意:之前写的所有的每一条sql语句都是有事务控制的。
#           只有需要保证一个操作的很多条sql语句的安全性的时候,才需要显示的添加事务。
# 1.5 添加事务:start transaction; 注意:事务需要提交,通过commit提交
# 1.6 回滚事务:rollback;
# 1.7 事务特性(ACID):
#          原子性:一个事务中的sql不能拆分
#          一致性:事务执行之前和执行之后总状态保持不变
#          隔离性:事务与事务之间互不影响
#          持久性:事务执行之后的结果要永久保存在数据库中

# jim给tom转1000块钱 
#(如果jim的账户减过以后,系统出了问题,tom的账户就不会加上。则数据不安全)
update bank set money=money-1000 where name='jim';
drop table xx;
update bank set money=money+1000 where name='tom';

# jim给tom转1000块钱 (添加事务控制,假定成功,需要提交)
start transaction; # 开启事务
update bank set money=money-1000 where name='jim';
update bank set money=money+1000 where name='tom';
commit; # 提交事务,就是把sql在内存中执行的结果,持久化到数据库中

# jim给tom转1000块钱 (添加事务控制,假定中间某一步报错,需要回滚事务)
start transaction; # 开启事务
update bank set money=money-1000 where name='jim';
update bank set money=money+1000 where name='tom';
rollback; # 回滚事务,就是把已经进行的操作重置到事务开始之前的状态

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值