autocommit自动提交事务及commit、rollback用法

2024-08-21 03:20

本文主要是介绍autocommit自动提交事务及commit、rollback用法,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

MySQL默认开启事务自动提交,每条SQL语句都会被当做一个单独的事务自动执行。

一、查看autocommit自动提交事物状态

SHOW VARIABLES LIKE ‘autocommit’;

1、开启状态:ON

autocommit的值为ON,表示系统开启自动提交模式
在这里插入图片描述

2、关闭状态:OFF

autocommit的值为OFF,表示系统关闭自动提交模式
在这里插入图片描述

二、修改autocommit状态

1、临时修改autocommit状态

#开启自动提交模式:autocommit=ON 或者 autocommit=1
SET autocommit = ON;
SET autocommit = 1;
#关闭自动提交模式:autocommit=OFF 或者 autocommit=0
SET autocommit = OFF;
SET autocommit = 0;

以上修改autocommit 状态的操作在本次ssh连接会话中有效,新开启的会话中将失效
实操:
(1)在ssh连接会话01中设置autocommit状态为OFF
(2)查看ssh连接会话1的autocommit状态为设置后的OFF关闭自动提交模式
在这里插入图片描述
(3)查看ssh连接会话2的autocommit状态为默认的ON开启自动提交状态
在这里插入图片描述

2、长久修改autocommit状态

(1)修改my.cnf配置文件:添加autocommit=0或者autocommit=OFF
在这里插入图片描述
或者
在这里插入图片描述
(2)重启mysql服务

service mysqld restart

(3)查看autocommit状态,即可永久关闭自动提交

SHOW VARIABLES LIKE ‘autocommit’;

在这里插入图片描述

三、commit提交

1、开启自动提交事务:autocommit=ON

在这里插入图片描述

2、关闭自动提交事务:autocommit=OFF

在这里插入图片描述
注意:
information_schema.INNODB_TRX 表可以用来查看当前正在运行的事务的信息:

SELECT trx_id,trx_state,trx_started,trx_mysql_thread_id,trx_query FROM
information_schema.INNODB_TRX;

  • trx_id: 事务的 ID。
  • trx_state: 事务的状态,如 RUNNING、LOCK WAIT、ROLLING BACK、COMMITTING 等。
  • trx_started: 事务开始的时间。
  • trx_mysql_thread_id: 与该事务关联的 MySQL 线程 ID。
  • trx_query: 触发事务的 SQL 语句(如果可用且没有超过最大长度限制)

四、rollback回滚

1、开启自动提交事务:autocommit=ON

自动提交事务开启,mysql数据库操作后使用rollback回滚无法恢复操作前的数据。
在这里插入图片描述

2、关闭自动提交事务:autocommit=OFF

自动提交事务被关闭,mysql数据库操作后使用rollback回滚可以进行恢复。
在这里插入图片描述

这篇关于autocommit自动提交事务及commit、rollback用法的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1091976

相关文章

vscode保存代码时自动eslint格式化图文教程

《vscode保存代码时自动eslint格式化图文教程》:本文主要介绍vscode保存代码时自动eslint格式化的相关资料,包括打开设置文件并复制特定内容,文中通过代码介绍的非常详细,需要的朋友... 目录1、点击设置2、选择远程--->点击右上角打开设置3、会弹出settings.json文件,将以下内

Python脚本实现自动删除C盘临时文件夹

《Python脚本实现自动删除C盘临时文件夹》在日常使用电脑的过程中,临时文件夹往往会积累大量的无用数据,占用宝贵的磁盘空间,下面我们就来看看Python如何通过脚本实现自动删除C盘临时文件夹吧... 目录一、准备工作二、python脚本编写三、脚本解析四、运行脚本五、案例演示六、注意事项七、总结在日常使用

SpringBoot项目启动后自动加载系统配置的多种实现方式

《SpringBoot项目启动后自动加载系统配置的多种实现方式》:本文主要介绍SpringBoot项目启动后自动加载系统配置的多种实现方式,并通过代码示例讲解的非常详细,对大家的学习或工作有一定的... 目录1. 使用 CommandLineRunner实现方式:2. 使用 ApplicationRunne

oracle中exists和not exists用法举例详解

《oracle中exists和notexists用法举例详解》:本文主要介绍oracle中exists和notexists用法的相关资料,EXISTS用于检测子查询是否返回任何行,而NOTE... 目录基本概念:举例语法pub_name总结 exists (sql 返回结果集为真)not exists (s

Springboot的ThreadPoolTaskScheduler线程池轻松搞定15分钟不操作自动取消订单

《Springboot的ThreadPoolTaskScheduler线程池轻松搞定15分钟不操作自动取消订单》:本文主要介绍Springboot的ThreadPoolTaskScheduler线... 目录ThreadPoolTaskScheduler线程池实现15分钟不操作自动取消订单概要1,创建订单后

Redis事务与数据持久化方式

《Redis事务与数据持久化方式》该文档主要介绍了Redis事务和持久化机制,事务通过将多个命令打包执行,而持久化则通过快照(RDB)和追加式文件(AOF)两种方式将内存数据保存到磁盘,以防止数据丢失... 目录一、Redis 事务1.1 事务本质1.2 数据库事务与redis事务1.2.1 数据库事务1.

python实现自动登录12306自动抢票功能

《python实现自动登录12306自动抢票功能》随着互联网技术的发展,越来越多的人选择通过网络平台购票,特别是在中国,12306作为官方火车票预订平台,承担了巨大的访问量,对于热门线路或者节假日出行... 目录一、遇到的问题?二、改进三、进阶–展望总结一、遇到的问题?1.url-正确的表头:就是首先ur

Spring使用@Retryable实现自动重试机制

《Spring使用@Retryable实现自动重试机制》在微服务架构中,服务之间的调用可能会因为一些暂时性的错误而失败,例如网络波动、数据库连接超时或第三方服务不可用等,在本文中,我们将介绍如何在Sp... 目录引言1. 什么是 @Retryable?2. 如何在 Spring 中使用 @Retryable

Springboot中Jackson用法详解

《Springboot中Jackson用法详解》Springboot自带默认json解析Jackson,可以在不引入其他json解析包情况下,解析json字段,下面我们就来聊聊Springboot中J... 目录前言Jackson用法将对象解析为json字符串将json解析为对象将json文件转换为json

SpringBoot嵌套事务详解及失效解决方案

《SpringBoot嵌套事务详解及失效解决方案》在复杂的业务场景中,嵌套事务可以帮助我们更加精细地控制数据的一致性,然而,在SpringBoot中,如果嵌套事务的配置不当,可能会导致事务不生效的问题... 目录什么是嵌套事务?嵌套事务失效的原因核心问题:嵌套事务的解决方案方案一:将嵌套事务方法提取到独立类