MySQL高级进阶---事务控制

大家好,我是天空之城。今天带来,MySQL高级进阶—事务控制。

  1. 了解什么是事务控制
  2. 熟悉事务的特性
  3. 掌握事务控制的使用
事务( Transaction )是指作为一一个逻辑工作单元执行的一系列操作,这些操作要么全部成功,要么全部失败。事务确保对多个数据的修改作为一个单元来处理。
在MySQL中,只有使用了Innodb存储引擎的数据库或表才支持事务。
事务用于维护数据库的完整性,保证成批的sq|语句要么都执行,要么都不执行(要么都成功,要么都失败)。
事务用于 管理INSERT、UPDATE和DELETE语句(增,改,删)。

例如,张三在ATM机上给李四转账100元,在银行的业务系统中,主要会执行两步数据变更操作:
①从张三的账户减去100元;
②给李四的账户增加100元。
试问,如果操作①执行成功,操作②执行失败会发生什么情况?

如果某个数据库声称支持事务,那么该数据库必须具备ACID四个特性,即Atomicity (原子性)、Consistency( -致性)、Isolation (隔离性)和Durbility (持久性)。

在默认情况下, MySQL是自动提交事务的,即每一条INSERT、 UPDATE、DELETE的SQL语句提交后会立即执行COMMIT操作。因此,要开启一个事务 ,可以使用start transaction或begin,或者将autocommit的值设置为0。


select @@autocommit;
select * from bank_account;
update bank_account set balance=balance-100 where id=1;
update bank_account set balance=balance+100 where id=2;


start transaction;开启事务
update bank_account set balance=balance-100 where id=1;
update bank_account set balance=balance+100 where id=2;
commit;

start transaction;
update bank_account set balance=balance-100 where id=1;
update bank_account set balance=balance+100 where id=2;
rollback;回滚

在这里插入图片描述

在这里插入图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值