mysql事务简单介绍(一)

mysql只有使用Innodb数据库引擎的数据库或表才支持事务
一、事务必须满足的条件:
1、原子性(Atomicity 或称不可分割性): 一个事务(transaction)中的所有操作,要么全部完成,要么全部不完成,不会结束在中间某个环节。事务在执行过程中发生错误,会被回滚(Rollback)到事务开始前的状态,就像这个事务从来没有执行过一样。

2、一致性(Consistency): 在事务开始之前和事务结束以后,数据库的完整性没有被破坏。

3、隔离性(Isolation , 又称独立性):数据库允许多个并发事务同时对其数据进行读写和修改的能力,隔离性可以防止多个事务并发执行时由于交叉执行而导致数据的不一致。事务隔离分为不同级别,包括读未提交(Read uncommitted)、读提交(read committed)、可重复读(repeatable read)和串行化(Serializable)。

4、持久性 (Durabillity):事务处理结束后,对数据的修改就是永久的,即便系统故障也不会丢失。

二、事务控制语句:
1、begin或 start transaction显示地开启一个事务

2、commit也可以使用commit work,两者等价,commit会提交事务,并使已对数据库的所有修改成为永久性的

3、rollback 也可以使用rollback workm,两者等价,回滚会结束用户的事务,并撤销正在进行所有未提交的事务

4、savepoint identifier ,允许在事务中创建一个节点,一个事务可以有多个节点savepoint

5、release savepoint idnetifier 删除一个事务的保存点,当没有指定保存点时,执行语句会抛出一个异常

6、rollabck savepoint idnetifier 把事务回滚到标记点

7、set transaction 用来设置一个事务的隔离级别。 InnoDB存储引擎提供事务的隔离级别有read un committed (未提交)、read commited(读提交)、repeatable read(可重复读)、serializable(串行化)

三、mysql事务处理的方法
1、使用begin 、rollback 、commit 来实现

  • begin 开启一个事务
  • rollback事务回滚
  • commit 事务确认

2、直接使用set改变mysql是自动提交模式

  • set autocommit=0 禁止自动提交
  • set autocommit=1 开启自动提交

事务测试:
在这里插入图片描述

结论:可以看到回滚事务后插入的数据撤销了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值