什么是事务

在mysql事务就是最小不可分割的工作单元,事务能够保证业务的完整性。要么都执行,要么都不执行,不允许执行一部分。

为什么需要事务呢?

假设一个场景:A给B转账100,此时A-100,B+100,如果现在只发生A-100的操作,没有发生B+100,则会出数据前后不一致性。

在数据库中,我们操作多条sql语句,使用事务时会产生同时失败,或者同时成功,这样结果使得产生的数据一致性。

mysql如何控制事务

mysql默认开启事务。使得我们我们在执行一个sql语句时,效果立马体现出来,产生的数据不能回滚(不能撤销操作)。
select @@autocommit;用于查看默认事务的提交状态,为1则是默认提交,为0则需要手动提交。

我们创建一个uers表。

我们往该表中插入元素。

但是有时候我们希望语句执行后,能够撤销到上一层,这是我们使用rollback回滚语句。

但是我们发现现在使用rollback并不能回滚数据,这是由于sql事务是默认提交的,但提交了就不能回滚,如果我们还需要回滚,则需要先将默认提交给关闭。
这时我们需要set outcommit = 0关闭mysql自动提交。

实例:

因为上面我们将默认提交给关闭了,所以现在我们使用回滚语句。

当使用回滚语句后,我们发现刚插入的数据撤销了,底层到底是怎么实现的呢?

我们将事务的默认提交方式给关闭了,实际上insert是将数据插入到一个拷贝出来的虚表中,在数据库中实际上是不存在的,因此我们使用rollback回滚的其实是一个虚表。
当我们把默认提交关闭后,还需要将数据写入到数据库中,这是我们需要将数据进行手动提交,在insert语句后面,加上commit,手动提交的方法。

在实际情况中,数据库事务是默认提交的,因此是不能回滚的,但是我们如果想要进行回滚,则需要在执行sql语句前执行begin或者start transaction。



默认关闭提交,我们需要使用begin,start transaction语句。

因此,begin与start transaction语句作用时间只能回滚一次,多次回滚需要执行多次begin与start transaction语句。
如果,使用begin语句想要写入到数据库中,则需要在最后使用commit写入数据库中。

数据库---事务(一)相关推荐

  1. 数据库事务的四大特性和隔离级别

    数据库事务(Database Transaction) ,是指作为单个逻辑工作单元执行的一系列操作,要么全部执行,要么全部都不执行. 一个逻辑工作单元要成为事务,必须满足事务的四大特性(ACID).即 ...

  2. 一个事务中 可以查询自己未提交的数据吗_数据库事务的方方面面

    事务 是关系型数据的一个重要特性,但很少有人能对事务有全面性的了解,这篇文章就把事务的方方面面讲给你. 事务的概念 什么是事务 数据库事务(事务)是数据库管理系统执行过程中的一个逻辑单位,由一个有限的 ...

  3. 阐述一下Mysql事务的四个特性_数据库事务的四个基本性质?

    本文转载:http://www.sqlstudy.com/sql_article.php?id=2008080302 数据库事务概念 什么是数据库事务? 事务(transaction)是由一系列操作序 ...

  4. 分布式事务开局第一篇,从数据库事务隔离级别说起

    来自:江南一点雨 春节临近,松哥也有点无心撸码.不过很多时候,很多事情,我们不能由着自己的性子,还是要控制一下自己,这不,松哥最近又打算开一个坑,和大家聊一聊分布式事务,因为我们做微服务,分布式事务肯 ...

  5. mysql 事务补偿_TCC补偿性策略_彻底学习数据库事务 seata分布式事务 共享 排它锁 死锁 索引 Spring事务 隔离级别等_MySQL视频-51CTO学院...

    课程总计41课时,从什么是事务讲起,直到分布式事务解决方案,很的0基础基础与提升系列课程.对于难以理解的知识点,全部用画图+实战的方式讲解. 彻底明白事务的四个特性:原子性.一致性.隔离性.持久性,用 ...

  6. 数据库事务的ACID特性及含义

    数据库事务的ACID特性及含义 1.原子性(Atomic) 一个事务被视为一个不可分割的最小工作单元,这个事务里的所有操作要么全部成功执行,要么全都不执行,不能只执行其中的一部分操作.实现事务的原子性 ...

  7. 数据库事务的四个隔离级别浅析

    数据库事务的隔离级别有4个,由低到高依次为Read uncommitted (读未提交).Read committed(读提交).Repeatable read(可重复读) .Serializable ...

  8. 数据库 事务的特性ACID

    事务(Transaction)是并发控制的基本单位. 所谓事务,它是一个操作序列,这些操作要么都执行,要么都不执行,它是一个不可分割的工作单位.例如,银行转帐工作:从一个帐号扣款并使另一个帐号增款,这 ...

  9. 数据库事务的隔离级别 (转)

    .NET 提供的数据库事务隔离级别 System.Data.IsolationLevel 枚举用于指定连接的事务锁定行为,它包含如下枚举:   成员名称 说明 Chaos 无法改写隔离级别更高的事务中 ...

  10. oracle表结构修改回滚,87.Oracle数据库SQL开发之 修改表内存——数据库事务的提交和回滚...

    87.Oracle数据库SQL开发之 修改表内存--数据库事务的提交和回滚 数据库事务(transaction)就是一组SQL语句,这组SQL语句时一个逻辑工作单元. 要永久性的记录事务中SQL语句的 ...

最新文章

  1. KDE与GNOME的战争史(转载)
  2. 信息化项目管理制度_华为内部几近满分的项目管理PPT,收走!
  3. 河北省重大系统征集系统案例分析
  4. Linux下修复修改profile文件导致命令不用可的解决方法
  5. python十六进制看图片
  6. MySql系统变量explicit_defaults_for_timestamp
  7. javaWeb服务详解(含源代码,测试通过,注释) ——applicationContext-Service.xml
  8. 简单的UTF8编码生成
  9. LPA标签传播算法——MATLAB实现及代码
  10. 『算法设计_伪代码』快速排序
  11. Eclipse 修改项目名称
  12. WPS文字教你制作米字本即用于临摹练字的米字格
  13. 在进行github相关操作的时候一直被要求Enter passphrase for key. 如何避免每次操作都重新填写一遍passphrase?
  14. 计算机如何打开无线网络适配器,如何解决网络适配器无法启动无线网卡的问题...
  15. css+html工商银行小项目
  16. 服务器系统如何克隆,服务器如何克隆操作系统
  17. css3 图片阴影、翘边效果
  18. 【规则】Adblock Plus 广告过滤规则自用整理
  19. 日常编程笔记 | 2022.10.1 | 归并排序_一无序列
  20. [问题已处理]-mac安装cobra失败

热门文章

  1. 流程图符号以及绘制流程图方法
  2. hdfs里的文件下载HDFS之fsimage、metadata、edits、fstime(二十七)
  3. linux之ps命令
  4. 使Android 自带SDK 完美支持HTML5 之 html5webview
  5. 各种协议在RFC中的编号
  6. 红旗与火狐携手打造优质开源体验,推出红旗Linux专版火狐浏览器
  7. MVC3 Razor语法速查
  8. Excel文字输入技巧
  9. htcvr设备计算机配置,VR对电脑配置要求高吗?HTC Vive电脑配置要求
  10. c语言gettop函数值,数据结构-栈 C和C++的实现