【MySQL进阶之路】什么是事务以及事务的操作

news2024/12/25 1:45:27

目录

什么是事务

事务的属性

事务的操作

查看数据库引擎

事务提交

开始一个事务

提交事务

创建一个保存点

回滚到保存点

结论

注意事项


个人主页:东洛的克莱斯韦克-CSDN博客

什么是事务

事务是由一条或多条DML语句构成的。其中多条DML语句的执行必须有两种状体——符合预期的完成对记录的增删改查操作不执行操作

虽然DML语句的执行是有过程性的,但如果多条DML语句在MySQL服务的技术支持下,能表现出原子性,这一组DML就是事务,反过来说事务是具有原子性的——事务可以进行回滚,如果事务的操作异常中断,MySQL服务可以让数据进行回滚,从而保证事务操作的原子性。

事务对应的一组DML语句在上层业务逻辑中不能是毫无意义的。

MySQL服务可能会收到大量事务请求,事务与事务之间如果在访问同样的数据,在不加保护的情况下会引发并发问题,所以事务绝对不是简单的SQL语句的集合。

事务的属性

原子性:一个事务(transaction)中的所有操作,要么全部完成,要么全部不完成,不会结束在中 间某个环节。事务在执行过程中发生错误,会被回滚(Rollback)到事务开始前的状态,就像这个 事务从来没有执行过一样。
一致性:在事务开始之前和事务结束以后,数据库的完整性没有被破坏。这表示写入的资料必须完 全符合所有的预设规则,这包含资料的精确度、串联性以及后续数据库可以自发性地完成预定的工 作。
隔离性:数据库允许多个并发事务同时对其数据进行读写和修改的能力,隔离性可以防止多个事务 并发执行时由于交叉执行而导致数据的不一致。事务隔离分为不同级别,包括读未提交( Read uncommitted )、读提交( read committed )、可重复读( repeatable read )和串行化 ( Serializable )
持久性:事务处理结束后,对数据的修改就是永久的,即便系统故障也不会丢失。

原子性是由回滚保证的。隔离性也有技术支持和相关策略。持久性就是数据的落盘(磁盘)行为。而一致性就是上述三者的体现,并没有具体技术的支持。

上面四个属性,可以简称为 ACID

原子性(Atomicity,或称不可分割性)

一致性(Consistency)

隔离性(Isolation,又称独立性)

持久性(Durability)。

事务的操作

查看数据库引擎

show engines \G
Engine -- 引擎名称
Support -- 默认引擎
Transactions -- 是否支持事务
Savepoints --是否支持事务保存点

事务提交

事务的提交方式常见的有两种: 自动提交 手动提交

查看事务提交方式

 show variables like 'autocommit';

用 SET 来改变 MySQL 的自动提交模式:

SET AUTOCOMMIT=0; #禁止自动提交

 SET AUTOCOMMIT=1; #开启自动提交

开始一个事务

 start transaction; 
begin;

begin操作会自动更改提交方式,不会受MySQL是否自动提交影响

提交事务

commit;

创建一个保存点

savepoint 保存点名

回滚到保存点

rollback to 保存点名
rollback; #直接rollback,回滚在最开始

结论

只要输入begin或者start transaction,事务便必须要通过commit提交,才会持久化,与是 否设置set autocommit无关。

事务可以手动回滚,同时,当操作异常,MySQL会自动回滚 对于 InnoDB 每一条 SQL 语言都默认封装成事务,自动提交。(select有特殊情况,因为 MySQL 有 MVCC )

注意事项

如果没有设置保存点,也可以回滚,只能回滚到事务的开始。直接使用 rollback(前提是事务 还没有提交)

如果一个事务被提交了(commit),则不可以回退(rollback)

可以选择回退到哪个保存点

 InnoDB 支持事务, MyISAM 不支持事务

开始事务可以使 start transaction 或者 begin

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2078719.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【一起学Rust | 框架篇 | Tauri2.0框架】rust和前端的相互调用(前端调用rust)

文章目录 前言1. 前端调用rust(command)1. 在后端定义一个command2. 注册command3. 前端调用command 2. 前端调用rust(event)4. command完整实例 前言 本期将继续接着上一期,继续探索tauri中rust和前端的相互调用&…

视觉SLAM十四讲-理论到实践课程作业笔记-第六讲-光流法和直接法

CH6_No1: 1-1. 光流法可分为哪几类? 答:正向和逆向,其中两种方法各又包含了直加法和组合法; 1-2 在 compositional 中,为什么有时候需要做原始图像的 wrap?该 wrap 有何物理意义? 答:我个人的理解此处的wrap就是…

大数据系统测试——大数据系统解析(下)

各位好,我是 道普云 欢迎关注我的主页 希望这篇文章对想提高软件测试水平的你有所帮助。 学习和理解大数据系统每一个层次需要解决的技术问题和对应的一些技术需求是对大数据系统进行软件测试的一个基础,上篇文章里我们已经跟大家分享了数据收集层、…

33.python socket

python socket编程 概念说明心跳包的作用基于以上知识的基础上我们来实现一个代码socket serversocket client执行结果 概念说明 socket传输数据是基于字节流的,默认情况下是无边界的字节流。 一般情况下数据里中包含心跳包和数据包。数据包就是我们实际需要发送给…

中国建筑轮廓数据

建筑轮廓数据是建筑的边界矢量数据,一般该数据属性中会记录对应建筑的高度或者楼层数,通过建筑轮廓数据置顶的高程字段拉伸,就可以得到建筑白盒模型,所以,我们在各类导航地图中看到的白盒模型,实际上是建筑…

深度剖析:医疗行业财务报表的核心要素与解析策略

在当今医疗行业中,财务报表分析扮演着至关重要的角色。医疗机构需要通过对财务数据的准确分析来做出关键决策,管理资源,改善效率,并确保最终提供高质量的医疗服务。本文将深入探讨医疗行业中财务报表分析的重要性、关键指标和分析…

《一种个性化逻辑定制与类置换方案》

📢 大家好,我是 【战神刘玉栋】,有10多年的研发经验,致力于前后端技术栈的知识沉淀和传播。 💗 🌻 CSDN入驻不久,希望大家多多支持,后续会继续提升文章质量,绝不滥竽充数…

通过违法app发现大量网站被挂黑页

免责声明:文章来源于真实事件,关键信息已经打码处理,请勿利用文章内的相关技术从事非法测试,由于传播、利用此文所提供的信息或者工具而造成的任何直接或者间接的后果及损失,均由使用者本人负责,所产生的一…

AI搜索的商业模式困境:Perplexity从拒绝广告到高价广告的转变

随着人工智能技术的发展,AI搜索逐渐成为人们日常生活中不可或缺的一部分。在这个领域,Perplexity曾被认为是AI搜索领域的领军企业,以其强大的智能搜索能力脱颖而出。然而,随着OpenAI的SearchGPT发布在即,Perplexity似乎…

掌握结构型模式——全景回顾

在前几篇文章中,我们详细探讨了多种结构型设计模式,今天来进行一个大总结——结构型设计模式主要关注类与对象的组合和组织,确保我们能够构建出稳固、灵活且易于维护的软件系统。无论你是初学者还是有经验的开发者,这篇文章都会帮…

计算循环冗余码(CRC)--软考笔记

1、什么是CRC循环冗余码(CRC) CRC(Cyclic Redundancy Check)是一种用于检测数据传输错误的校验码。它通过一个预定义的生成多项式来计算一个固定长度的校验值,这个值被附加到原始数据上一起发送。接收端使用相同的生成…

二叉树 - 完全二叉树的节点个数

222. 完全二叉树的节点个数 方法一:递归 /*** Definition for a binary tree node.* function TreeNode(val, left, right) {* this.val (valundefined ? 0 : val)* this.left (leftundefined ? null : left)* this.right (rightundefined ? nul…

多商户2.3.0后台顶部添加修改密码修复方法

问题:后台登录不能修改自己的密码; 解决方法: 修改前端代码,文件路径(平台后台,商户后台一样的修改方法):src/layout/navBars/breadcrumb/user.vue 修改第一处 代码: 修…

IM即时通讯给娱乐社交、游戏等行业带来了什么影响?看这篇就知道

企业IM即时通讯技术的发展和应用,对我们的生活、工作、沟通和交流带来了显著的影响和改变。 IM即时通讯技术的发展不仅改变了我们的沟通方式,还提高了工作效率,促进了团队协作,保障了信息安全,并推动了业务创新。随着技…

机器人学导论之连杆参数

目录 一、连杆参数[1] 二、将下肢看作二连杆结构 三、参考文献 一、连杆参数[1] 1.1关节角 绕轴,从旋转到的角度。 备注:从z轴正方向看,顺时针为正,逆时针为负。 图 1 平面三连杆操作臂 以图1为例子, 表示…

文献解读-农业-第二十九期|《β-淀粉酶和磷脂酸参与板栗种子萌发》

关键词:农业;基因测序;变异检测; 文献简介 标题(英文):Beta-amylase and phosphatidic acid involved in recalcitrant seed germination of Chinese chestnut标题(中文&#xff09…

岩土工程中的渗流问题:有限单元法的理论与实践

有限单元法在岩土工程问题中应用非常广泛,很多商业软件如Plaxis/Abaqus/Comsol等都采用有限单元解法。尽管各类商业软件使用方便,但其使用对用户来说往往是一个“黑箱子”。相比而言,开源的有限元程序计算方法透明、计算过程可控,…

宝藏!盟主自控独家讲义:《掌中宝》(精卫篇)1-9章:甄选部分

本文内容,全部选自自动化考研联盟的:盟主自控独家讲义:《掌中宝》(精卫篇)。 Part1:资料封面&目录 Part2:资料各个章节具体内容 自控专属数学基础储备 第1章 自动控制的基本概念 第2章 控制系统的数学模型 第3章…

8.26算法训练

1.八皇后 Checker Challenge 输入: 6输出: 2 4 6 1 3 5 3 6 2 5 1 4 4 1 5 2 6 3 4是以前寒假写过的题目,所以有的影响,大致思路就是用深度遍历然后判断是否在对角线上就ok了,有大概思路的话, 还是不难的…

比特币的签名和验证(基于ECDSA)

比特币(Bitcoin)和以太坊(Ethereum)等区块链技术使用了加密算法来确保交易的安全性。私钥签名和公钥验证是这些算法的核心部分,主要用于证明交易的发起者拥有交易中使用的资金的控制权,而不需要暴露私钥本身…