加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

MySQL事务详解

发布时间:2020-12-12 03:08:44 所属栏目:MySql教程 来源:网络整理
导读:《MySQL事务详解》要点: 本文介绍了MySQL事务详解,希望对您有用。如果有疑问,可以联系我们。 什么是事务(transaction) 保证成批操作要么完全执行,要么完全不执行,维护数据的完整性.也便是要么成功要么失败. 事务可以是n条sql语句(n=0) 不是所有数据库引擎
Serializable(串行化)避免脏读、弗成重复读、幻读Repeatable(可重复读)避免脏读、弗成重复读Read committed(读已提交)避免脏读Read uncommitted(读未提交)none
  • mysql支持上面4种隔离级别,默认为可重复读

  • MySQL事务详解

事务的使用

start transcation;delete from user;
  • transcation 事务开始

  • rollback 回滚到事务起点

  • savepoint 保存回滚位置

  • rollback point_name 回滚到设置的位置

使用注意点

  • 如果事务中sql正确运行,后面没有commit,结果是不会更新到数据库的,所以必要手动添加commit.

  • 如果事务中部门sql语句出现错误,那么错误语句后面不会执行.而我们可能会认为正确操作会回滚撤销,但是实际上并没有撤销正确的操作,此时如果再无错情况下进行一次commit,之前的正确操作会生效,数据库会进行更新.

《MySQL事务详解》是否对您有启发,欢迎查看更多与《MySQL事务详解》相关教程,学精学透。编程之家PHP学院为您提供精彩教程。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

《MySQL事务详解》要点:
本文介绍了MySQL事务详解,希望对您有用。如果有疑问,可以联系我们。

MySQL事务详解

什么是事务(transaction)

  • 保证成批操作要么完全执行,要么完全不执行,维护数据的完整性.也便是要么成功要么失败.

  • 事务可以是n条sql语句(n>=0)

  • 不是所有数据库引擎支持事务,InnoDB引擎支持事务处理

事务四大特性

  • 原子性(Atomic):事务的所有所有操作要么全部执行,要么全部不执行.如果中途出现错误不会停止,而是回滚到事务前的状态

  • 一致性(Consistency):如果事务执行前是一致的,那么执行后也是一致的,不能破坏关系数据的完整性以及业务逻辑上的一致性,事务依照预期实现.

  • 隔离性(Isolation):隔离性可以防止多个事务并发时导致数据的纷歧致

  • 持久性(Durability):事务执行成功后对数据库的修改是永久的

  • MySQL事务详解

事务并发不进行事务隔离

  • 脏读:事务A读到未提交事务B修改的数据,如果此时事务B中途执行失败回滚,那么此时事务A读取到的就是脏数据.好比事务A对money进行修改,此时事务B读取到事务A的更新结果,但是如果后面事务A回滚,那么事务B读取到的就是脏数据了.

  • 弗成重复读:同一个事务中,对同一份数据读取的结果不一致.事务A在事务B对数据更新前进行读取,然后事务B更新提交,事务A再次读取,这时候两次读取的数据不同.

  • 幻读:同一个事务中,同一个查询多次返回的结果不一样.事务B查询表的记录数,然后事务A对表插入一条记录,接着事务B再次查询发现记录数分歧.

区别

  • 脏读和弗成重复读:脏读是事务读取了还未提交事务的更新数据.弗成重复读是同一个事务中,几次读取的数据不同.

  • 弗成重复读和幻读的区别:都是在同一个事务中,前者是几次读取数据不同,后者是几次读取数据整体不同.

隔离级别

隔离级别作用
    推荐文章
      热点阅读