Mysql autocommit参数

简单介绍下autocommit参数,下文内容只在Innodb引擎下有效,因为Innodb支持事务,MyISAM不支持
环境:mysql8(innodb),mac M1

一、autocommit参数是一个客户端参数,或者说是连接参数。

为了演示autocommit参数的效果,这里创建两个连接,两个连接的是我本地的同一个数据库,只是连接名不同。
在这里插入图片描述
在这里插入图片描述


1、查询当前连接的autocommit参数

show variables like "autocommit"

在这里插入图片描述
另一个连接的autocommit的值也是ON,因为默认是ON


2、修改当前连接的autocommit参数

## 其中0=OFF,1=ON
set autocommit = 0   

在这里插入图片描述

再查一下mysql2连接的autocommit
在这里插入图片描述
可以看出autocommit是属于连接的参数,不是数据库参数。每个连接各有一个autocommit参数。


二、autocommit参数的作用

autocommit:自动提交。提交指的是事务提交,顾名思义,当开启自动提交之后,你的每一次sql执行都会立马作为一个事务提交。如果关闭自动提交,你执行的sql都不会生效,除非你手动执行commit

示例
就不用navicat来演示了,因为navicat好像会隐式的在每一次执行的最后加一个commit。我没找到在哪里关闭这个功能。。。。
所以直接用命令行演示。

1、开启一个连接,并设置autocommit参数为OFF,然后执行一条插入语句,发现表里有数据。但这时数据并没有真正的插入到表里,只有当手动输入commit之后,数据才会真正写入表里。

在这里插入图片描述

2、开启另一个连接来检查刚刚的insert操作。确实是查不到数据。
在这里插入图片描述

3、用第一个连接,执行一次commit
在这里插入图片描述

4、第二个连接再次查询,发现数据写入。
在这里插入图片描述

5、我就不演示autocommit为ON的情况了,默认就是ON,大家平时用的应该也是ON。

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值