MySQL事务处理

事务是保证底层数据完整的重要手段,没有事务支持的数据库应用,那将非常脆弱。

事务是由一步或者几步数据库操作序列组成的逻辑执行单元,这些操作要么全部执行,要么全部放弃执行。

事务是DBMS的执行单位,不是任意的数据库操作序列都能成为事务。事务具有如下4个基本特征(ACID):

  1. 原子性(Atomicity):事务是应用中不可再分的最小逻辑执行体。
  2. 一致性(Consistency):事务执行的结果必须使数据库从一个一致性状态,变到另一个一致性状态。当数据库只包含事务成功提交的结果时,数据库处于一致性状态。
  3. 隔离性(Isolation):并发执行的事务之间不能相互影响,任何一个事务的内部操作对其他事务来说都是隔离的。
  4. 持续性(Durability):事务一旦提交,对数据库所做的任何改变都要记录到永久存储器中
MYSQL 事务 处理主要有两种方法。
  1、用begin,rollback,commit来实现
       begin 开始一个 事务
       rollback  事务 回滚
       commit   事务 确认
   2、直接用set来改变 mysql 的自动提交模式
        MYSQL 默认是自动提交的,也就是你提交一个QUERY,它就直接执行!我们可以通过
     set autocommit=0  禁止自动提交,开启了事务
     set autocommit=1 开启自动提交
  来实现 事务 的处理。
MySQL默认关闭事务(即打开自动提交)。
事务回滚有两种方式:显示回滚和自动回滚。
  1. 显示回滚:使用rollback;
  2. 自动回滚:系统出错或者强行退出。
一个MySQL的命令行窗口代表一次连接Session,在该窗口中设置set autocommit = 0不会影响其他连接。此外,如果不想关闭整个窗口的自动提交,而只是想临时性地开始事务,则可以使用start tranction 或begin两个命令,它们都表示临时性地开始一次事务,处于start tranction 或begin后的DML不会立即生效,除非使用commit显示提交事务,或者执行DDL、DCL语句来隐式提交事务。
除此之外,MySQL还提供了savepoint来设置事务的中间点,可以让事务回滚到指定中间点。回滚到中间点因为依然处于事务之中,所以不会结束当前事务。
savepoint a;
rollback to a; 



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值