MySQL事务

事务:一个最小的不可再分的工作单元;通常一个事务对应一个完整的业务,执行事务要么都成功,要么都失败

事务原则:

​ 事务是必须满足4个条件(ACID)::原子性(Atomicity,或称不可分割性)、一致性(Consistency)、隔离性(Isolation,又称独立性)、持久性(Durability)。

  • 原子性:原子性是指事务是一个不可分割的工作单位,事务中的操作要么都发生,要么都不发生。
  • 一致性:事务前后数据的完整性必须保持一致。
  • 隔离性:事务的隔离性是多个用户并发访问数据库时,数据库为每一个用户开启的事务,不能被其他事务的操作数据所干扰,多个并发事务之间要相互隔离
  • 持久性:持久性是指一个事务一旦被提交,它对数据库中数据的改变就是永久性的,接下来即使数据库发生故障也不应该对其有任何影响

事务的隔离级别

  • 脏读:指一个事务读取了另外一个事务未提交的数据。
  • 不可重复读:在一个事务内读取表中的某一行数据,多次读取结果不同。(这个不一定是错误,只是某些场合不对)
  • 幻读:是指在一个事务内读取到了别的事务插入的数据,导致前后读取不一致。
    (一般是行影响,多了一行)

隔离级别

级别描述
Serializable可避免脏读、不可重复读、虚读情况的发生
Repeatable read可避免脏读、不可重复读情况的发生
Read committedRead committed
Read uncommitted最低级别,以上情况均无法保证

一次事务

--mysql 默认是开启事务自动提交的 autocommit=1
set autocommit = 0  /* 关闭事务自动提交 */
--标记一个事务的开启,这条语句之后的SQL都在同一个事务里
start transaction 
--事务具体内容
insert xx
--提交事务,实现持久化
commit
--回滚,回滚到原来的内容,如果事务已提交,执行rollback显示提交后的内容
rollback
--事务结束,恢复默认自动提交
set autocommit = 1

--设置一个事务的保存点
savepoint 保存点名
--回滚到保存点
rollback to savepoint 保存点名
--撤销保存点
release savepoint 保存点名
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值