iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >mysql中autocommit与sql回滚有什么关系
  • 707
分享到

mysql中autocommit与sql回滚有什么关系

2024-04-02 19:04:59 707人浏览 薄情痞子
摘要

本篇内容主要讲解“Mysql中autocommit与sql回滚有什么关系”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“mysql中autocommit与sql回

本篇内容主要讲解“Mysql中autocommit与sql回滚有什么关系”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习mysql中autocommit与sql回滚有什么关系”吧!

mysql中autocommit与sql回滚的关系
 
今天群里有人问了一个mysql中sql执行出错是否会回滚的问题。第一个感觉这个答案应该和autocommit有关。
 
首先交代下背景,问题复现一下:
执行sql:
  www.2cto.com  
1
root<a href="Http://my.oschina.net/u/203327" target="_blank" rel="nofollow">@wlb</a>  12:48:30>update wlb_schedule_02 set status=status*10 where gmt_create<="2012-08-16 1:00:00";
然后报了error:
1
ERROR 1197 (HY000): Multi-statement transaction required more than 'max_binlog_cache_size' bytes of storage; increase this mysqld variable and try again
首先这是对多行进行了操作,如果其中一行出错或者执行到某行时出错,那么之前的语句是否会回滚?答案是肯定的。
但是什么时不会回滚,什么时候又会回滚呢?这个和autocommit又有什么关系呢?
1
show VARIABLES like '%autocommit%';
显示autocommit是否打开,然后关闭autocommit
1
set autocommit=0;
然后对test1表插入数据,其中那么字段是非空的,所以插入空值时肯定报错了
1
INSERT INTO test1  (age,name) VALUEs (20,'1');
2
INSERT INTO test1  (age,name) VALUEs (20,'2');
3  www.2cto.com  
INSERT INTO test1  (age,name) VALUEs (20,null);
4
INSERT INTO test1  (age,name) VALUEs (20,'4');
因为不会自动提交,所以执行到第三条是会全部回滚,所以最后中没有数据
然后把autocommit打开
1
set autocommit=1;
再执行插入语句:
1
INSERT INTO test1  (age,name) VALUEs (20,'1');
2
INSERT INTO test1  (age,name) VALUEs (20,'2');
3
INSERT INTO test1  (age,name) VALUEs (20,null);
4
INSERT INTO test1  (age,name) VALUEs (20,'4');
因为会自动提交,所以执行完前两条的时候,数据会插入数据库,然后第三条的时候就报错了。所以数据库中会有两条数据。
解析来我们来模拟今天的实际问题,我们把autocommit设置成ture
  www.2cto.com  
然后执行下面的语句
1
INSERT INTO test1  (age,name) VALUEs (20,'1'),(20,'2'),(20,null),(20,'4');
虽然是autocommit了,整个语句也会报错,执行到第三条的时候也会报错,但是前两条也没有提交成功。
总结一下,如果是多次插入或修改多行的数据时,autocommit会影响执行成功的数据是否提交。如果在一条语句中执行的时候,那么会把整个操作当成一个事务来执行,所以这时候autocommit是否打开也没有作用了。单条语句成功就成功,失败即回滚。

到此,相信大家对“mysql中autocommit与sql回滚有什么关系”有了更深的了解,不妨来实际操作一番吧!这里是编程网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

您可能感兴趣的文档:

--结束END--

本文标题: mysql中autocommit与sql回滚有什么关系

本文链接: https://www.lsjlt.com/news/59117.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • mysql中autocommit与sql回滚有什么关系
    本篇内容主要讲解“mysql中autocommit与sql回滚有什么关系”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“mysql中autocommit与sql回...
    99+
    2024-04-02
  • url与sql注入有什么关系
    url与sql注入的关系是一前一后,比如注入可分为SQL注入、JavaScript注入,SQL注入通常是针对数据库作攻击,而JavaScript注入通常是做跨网站攻击的一个手段,并且这些注入都可以通过URL作攻击或写入动作,因此SQL注入可...
    99+
    2024-04-02
  • springboot中junit回滚有什么作用
    这篇文章主要介绍“springboot中junit回滚有什么作用”,在日常操作中,相信很多人在springboot中junit回滚有什么作用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”springboot中...
    99+
    2023-07-06
  • Mysql中默认自动事务autocommit关闭和开启方式、rollback回滚恢复数据的使用方法
    文章目录 autocommit自动提交事物一、查看autocommit状态二、修改autocommit 状态的方式1、第一种方式2、修改mysql配置文件my.cnf 二、rollbac...
    99+
    2023-10-18
    mysql 数据库
  • Fastai与PyTorch有什么关系
    Fastai 是建立在 PyTorch 深度学习框架之上的一个高级 API。它提供了一系列方便易用的工具和函数,旨在使深度学习任务更...
    99+
    2024-04-02
  • SQL中有序索引与order by有什么联系
    这篇文章主要介绍了SQL中有序索引与order by有什么联系,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。一般情况下,order by 有...
    99+
    2024-04-02
  • python中子类与父类有什么关系
    今天就跟大家聊聊有关python中子类与父类有什么关系,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。Python主要用来做什么Python主要应用于:1、Web开发;2、数据科学研究...
    99+
    2023-06-14
  • PHP 函数返回值的类型与效率有什么关系?
    php 函数返回值类型会影响效率。基本类型(标量)比对象类型更轻量,而对象类型需要分配额外内存。数组的效率取决于大小和元素类型。null 通常比标量类型更重。void 方法用于控制程序流...
    99+
    2024-04-15
    效率 php 类型 内存占用 键值对 垃圾回收器
  • Oracle中PL/SQL与SQL有什么区别
    PL/SQL(Procedural Language/Structured Query Language)是Oracle数据库中的一...
    99+
    2024-04-19
    Oracle PL/SQL SQL
  • MySQL中主键为0与主键自排约束有什么关系
    这篇文章将为大家详细讲解有关MySQL中主键为0与主键自排约束有什么关系,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。开始不设置主键表的设计如下:如果id的...
    99+
    2024-04-02
  • 了解MySQL中的存储过程与PL/SQL的关系
    标题:探究MySQL中的存储过程与PL/SQL的关系 在数据库开发中,存储过程是一种预先编译的SQL语句集合,可以在数据库服务器上执行。MySQL是一种流行的关系型数据库管理系统,它支...
    99+
    2024-03-15
    mysql 存储过程 pl/sql sql语句
  • 了解MySQL中的存储过程与PL/SQL的关系
    标题:探究MySQL中的存储过程与PL/SQL的关系 在数据库开发中,存储过程是一种预先编译的SQL语句集合,可以在数据库服务器上执行。MySQL是一种流行的关系型数据库管理系统,它支...
    99+
    2024-03-15
    mysql 存储过程 pl/sql sql语句
  • Java中的进程与线程有什么关系
    本篇文章给大家分享的是有关Java中的进程与线程有什么关系,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。进程与线程,本质意义上说, 是操作系统的调度单位,可以看成是一种操作系统...
    99+
    2023-05-31
    java 进程 线程
  • Python中的对象是什么?与Unix有何关系?
    Python是一种面向对象编程(OOP)语言,因此对象是Python中最基本的概念之一。在Python中,几乎所有的东西都是对象。本文将探讨Python中对象的概念,以及与Unix的关系。 Python中的对象 在Python中,对象是一种...
    99+
    2023-07-01
    对象 unix numy
  • Go语言中类型与接口有什么关系
    在Go语言中,类型和接口之间有一对多和多对一的关系。一个类型可以同时实现多个接口,而接口间彼此独立,不知道对方的实现。多个类型也可以实现相同的接口:一个接口的方法,不一定需要由一个类型完全实现,接口的方法可以通过在类型中嵌入其他类型或者结构...
    99+
    2023-05-14
    go语言 Golang 接口
  • javascript与java有什么关系(区别与相似)
    目录什么是Java?如何开始用 Java 编写代码用Java编写一个简单的代码代码说明什么是 JavaScript?如何开始使用 JavaScript 编写代码如何编写你的第一个Ja...
    99+
    2023-02-25
    javascript与java有什么关系 javascript与java区别与相似
  • MES系统价格与选型有什么关系
      对于现在很多的制造型企业来说上一套MES系统成为不二之选,因为MES系统不仅能从总体上提高企业的信息化建设程度,而且还能从细节上改善生产管理,但令很多决策层头疼的是关于MES系统价格的问题,报价悬殊太大不知如何进行选择,其实这就与MES...
    99+
    2023-06-05
  • ASP、Path、JavaScript与日志有什么关系?
    在Web开发中,我们常常需要使用ASP、Path、JavaScript等技术来实现网站的功能和交互效果。同时,为了更好地了解用户行为和网站运行状态,我们还需要记录日志。那么ASP、Path、JavaScript与日志之间有什么关系呢?下面...
    99+
    2023-07-02
    path javascript 日志
  • Timer和TimerTask与线程有什么关系
    今天就跟大家聊聊有关Timer和TimerTask与线程有什么关系,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。 Timer是一个定时器,它可以根据指定的时间,指定的执行周期来执行固...
    99+
    2023-05-31
    timer timertask 线程
  • 什么是 MySQL 事件以及它与触发器有何关系?
    MySQL 事件是一项基于预定义计划运行的任务,因此有时将其称为计划事件。换句话说,我们可以说MySQL事件调度是一个在后台运行并不断寻找要执行的事件的进程。它被称为临时触发器,因为它们是按时间触发的,而不是像基于表更新执行的触发器。我们可...
    99+
    2023-10-22
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作