MySQL事务的概念

应用场景

    生活中,我们往往经常会进行转账操作,转账操作可以分为两部分来完成,转入和转出。只有这两部分都完成了才可以认为是转账成功。

    数据库中,这个过程是使用两条语句来完成的,如果其中任意一条语句出现了异常没有执行,则会导致两个账号的金额不同步,造成错误。

  为了防止上面可能出现的情况,MySQL引入了事务,所谓事务就是针对数据库的一组操作,它可以由一条或者多条SQL语句组成,同一个事务的操作具备同步的特点,如果其中有一条语句不能执行的话,那么所有的语句都不会执行,也就是说,事务中的语句要么都执行,要么都不执行。

    事务的隔离级别:

    如果多个事务同时操作一批数据会引发一些问题,设置不同隔离级别就可以解决这些问题

    事务存在的问题:

        1,脏读 (读到另一个事务中未提交的数据)

        2,不可重复读(在同一个事务中,两次读到的数据不一样)

         3,幻读(一个事务操作数据库中所有的记录,另一个事务添加了一个数据则第一个失误查询不到自己的修改)

    事务的四大特征

          1,原子性:不可分割,要么同时成功要么同时失败  

          2,持久性当事务提交或回滚后,数据库会持久化的保存数据 

          3,隔离性:多个事务之间相互独立 

          4,一致性:事务操作前后数据总量不变

事务两种提交方式:

        手动提交:要先开启事务再提交(oracle就是手动提交)

        自动提交:mysql就是自动提交

如果一个包含多个步骤的业务操作被事务管理,那么这些操作要么同时成功,要么同时失败    


        1:开启事务:start transaction;

        2.发生异常时回滚:rollback;

        3.提交操作:commit

mysql数据库中事务默认自动提交:一条dml语句自动提交一次

修改事务的默认提交方式:

         1,查看事务的提交方式:select @@autocommit;

         2,修改:set@@autocommit=0,修改为0后不作commit就没有修改成功

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • MySQL事务主要用来处理数据量大、数据复杂度高的数据操作,最经典的使用场景是银行的转账:需要先从银行账户A中取出...
    稀里糊涂司小呆阅读 340评论 0 0
  • 一、(了解)定义 全称(Transaction Control Language)翻译成中文 事务控制语言,事务是...
    唯老阅读 692评论 0 2
  • 一、事务概述 我们可以将事务理解为一组sql语句的集合。事务可以只包含一条sql,也可以包含多条sql,事务中所有...
    国球乒乓阅读 389评论 0 0
  • 一、(了解)定义 全称(Transaction Control Language)翻译成中文 事务控制语言,事务是...
    任未然阅读 205评论 0 0
  • wxPython hello world app = wx.App(False)每个wx.App都是一个wxPyt...
    fxxtat阅读 547评论 0 1