首页 > 数据库技术 > 详细

mysql-事务

时间:2019-09-02 11:27:45      阅读:75      评论:0      收藏:0      [点我收藏+]

事务

什么是事务

? 事务就是一系列sql语句的组合,是一个整合

事务的特点

  • 原子性: 指的是这个事务中的sql语句是一个整体,不能拆分,要么都执行,要么全部失败
  • 一致性: 事务执行结束后,表的关联关系一定是正确的,不会发送数据错乱
  • 隔离性: 事务之间相互隔离,数据不会相互影响,及时操作了同一个表,本质就是加锁,根据锁的粒度不同分为几个隔离级别;
  • 持久性: 事务执行成功后,数据将永久保存,无法恢复

事务的应用场景:

? 转账操作:

    * 先把转出账号的钱扣掉,
    * 再把转入账号的余额做增加操作

如果这两步操作在完成第一步操作时,突然中断了,那么,转出账号的钱被扣掉了,但是转入账号没有接收到钱,就会导致钱无缘无故丢失,因此,我们就需要把这两步操作绑定在一块,如果其中一步没有成功,那整个都执行失败,确保账号数据正确.

# 开启事务
start transaction 
添加sql 语句......
savepoint a  # 保存点, 可以在rollback 指定回滚到某一个savepoint,也就回滚一部分
rollback  # 回滚操作,即撤销没有提交之前的所有操作,如果已经提交,就恢复不了
commit # 提交事务,一旦提交就持久化了

# 何时回滚   当一个事务执行过程中出现了异常时  我们可以捕获异常
# 何时提交   当事务中所有语句都执行成功时
create table account(name char(10),money float);
insert into account values("张三丰",5000),("张无忌",100);

# 开启事务
start transaction;
sql语句....
update account set money = money-100 where name ="张三丰";
update account set money = money+100 where name ="张无忌";
# 提交 或者回滚 rollback,只要提交完成,就不能回滚了
commit; 

mysql-事务

原文:https://www.cnblogs.com/raynduan/p/11444754.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!