10.MySQL事务(上)

news2025/1/18 10:03:32

个人主页:Lei宝啊 

愿所有美好如期而遇


目录

前言:

是什么?

为什么?

怎么做?


前言:

本篇文章将会说明什么是事务,为什么会出现事务?事务是怎么做的?

是什么?

我们以买火车票为例:

首先我们可以肯定的是买票这个动作不止一个人在做,也就是说是许多人并行的,不是串行的。

那么假设我们对买火车票数据库的CURD不加控制:

那么假设就剩一张票,有两个客户同时买票,客户端A买的时候发现还有一张,客户端B也发现还有一张,那么当他们买完之后,数据传回数据库,就会发现一张票被卖了两次。

问题:数据库的CURD要满足什么属性才能解决上述问题?

  • 买票互相之间不能影响
  • 买的票不重复且有效
  • 买前买后状态确定,要么没买上,要么就买上了


接下来解释什么是事务:
事务就是一组SQL语句,这一组语句要么全部执行成功,要么全部失败,他们是一个整体,而且MySQL保证了我们能够达到这样的效果。

并且事务规定不同客户端看到的数据不同,   因为数据库不止一个事务在访问,而有可能多人同时访问一个表数据,我要改,他要查,她要删,对表数据不加保护的话就一定会出问题。

共享表单,几十人同时填写一个表单,一个人在填写自己的那一列时,别人是无法填写的,但是他又可以实时看到别人填写的东西,最重要的是,当你填写后,别人可以删改你填写的,共享表单的数据,谁也可以修改,那最后一定会出问题。

所以买火车票的数据库他一定有保护措施,并不会互相影响,被互相看到,互相删改。

那么他一定满足以下四个属性:

原子性:

一个事务要么就全部完成,要么就全部不完成,在事务执行过程中出现错误时,会回滚到事务开始前的状态,就像没执行过一样。

隔离性:

数据库允许多个并发事务同时对数据修改和读写,隔离性可以防止多个事务并发执行时由于交叉执行而导致的数据不一致。

事务隔离分为四个级别:

  • 读未提交 (read uncommitted)
  • 读提交    (read committed)
  • 可重复读(repeatable)
  • 串行化

持久性:

事务处理结束后,对数据的修改就是永久的,即使系统故障也不会丢失。

一致性:

由前三个属性保证,要求在事务前后,数据库的完整性不能受到破坏,即所有插入的数据都符合我们预设的条件。

为什么?

事务被MySQL编写者设计出来是为了简化我们编程,即不需要我们去考虑各种各样潜在的错误和并发问题,即要么我们操作成功,要么回滚,不用去考虑网络异常等问题,就很方便,因此事务不是天生就有的,本质是为了上层应用而诞生的。

另外,MySQL中只有innodb引擎支持事务,myisam是不支持的。(transaction表示事务)

怎么做?

  • 手动提交
  • 自动提交 

 查看事务提交方式

show variables lile 'autocommit'

 

用set来改变MySQL的自动提交方式

set autocommit = 0;

set autocommit = 1;

 


下节我们将使用一个简单银行用户表来进行事务的手动操作,对比自动和手动操作,对比不同隔离级别。

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

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

相关文章

python-列表推导式、生成器表达式

一、列表推导式 列表推导式:用一句话来生成列表 语法:[结果 for循环 判断] 筛选模式: 二、生成器表达式

python工具三星路由器远程命令执行漏洞

无人扶我青云志,我自踏雪至山巅;​倘若命中无此运,孤身亦可登昆仑 python工具 漏洞证明: 文笔生疏,措辞浅薄,望各位大佬不吝赐教,万分感谢。 免责声明:由于传播或利用此文所提供的…

JVM虚拟机:如何查看自己的JVM默认的垃圾回收器

只需要在程序运行的时候指定下面的参数就可以看到当前自己的JVM默认的垃圾回收器是什么?如下所示: 如上所示,默认使用的是G1回收器,这是我的电脑,因为我的电脑安装jdk的版本是1.9 如果你的jdk的版本是1.8,那…

一、技术选型(从零开始撸斗地主)

将心沉下来,构建一个自己属于自己的城堡。 最近准备搞一个能承载上万人同时在线的斗地主游戏。 技术选型 客户端:Unity3D 目前有俩个选项,unity3d,cocosCreator 思考了很久,最终决定选用自己擅长的框架来搞。 服务器&#xff…

什么是单片机?它是如何工作的?

一.单片机是什么? 家用电器包含各种各样的集成电路板。 在集成电路板上最重要的就是单片机(单片微型计算机)。它是一种集成电路芯片。 二.单片机的组成 2.1 CPU CPU的主要功能是运算和控制。2.2 ROM 1.是什么? ROM的全称是Re…

delphi7安装并使用皮肤控件

1、下载控件 我已经上传到云盘,存储位置 2、下载后并解压。 3、打开dephi7,File-Open,打开路径D:\LC\Desktop\vclskin2_XiaZaiBa\d7, 然后将 D:\LC\Desktop\vclskin2_XiaZaiBa\d7文件夹中所有后缀.dcu的文件复制粘贴到delphi安装路…

【2024最新】HBuilder X3.1.22【安装】零基础入门到精通,看完这一篇就够了【附安装链接】

软件下载 软件:HBuilder X版本:3.1.22语言:简体中文大小:278.95M安装环境:Win11/Win10/Win8/Win7硬件要求:CPU2.0GHz 内存4G(或更高)下载通道①百度网盘丨下载链接:https://pan.bai…

[计算机网络]认识“协议”

认识“协议” 文章目录 认识“协议”序列化和反序列化网络计算器引入Sock类设计协议编写服务端类启动服务端编写客户端类启动客户端程序测试 序列化和反序列化 在网络体系结构中,应用层的应用程序会产生数据,这个数据往往不是简单的一段字符串数据&…

python把Word题库转成Excle题库

又到了一年一度的背题时刻,但是收到的题库是Word版的,页数特别多 话不多说,上代码,有图有真相,代码里面备注的很详细 # 导入所需库 import csv import os import refrom docx import Document from win32com import c…

【数据结构】数组和字符串(十四):字符串匹配1:朴素的模式匹配算法(StringMatching)

文章目录 4.3 字符串4.3.1 字符串的定义与存储4.3.2 字符串的基本操作4.3.3 模式匹配算法1. 算法原理2. ADL语言3. 伪代码4. C语言实现5 时间复杂度 4.3 字符串 字符串(String)是由零个或多个字符(char)顺序排列组成的有限序列,简称为串。例如 “good morning”就是…

共焦显微镜使用

x.1 细胞培养 x.2 样品制备 以细菌为例,我们使用荧光染色细菌,静置15分钟。 15分钟后我们使用实验室的专用培养皿,选择吸收100uL的溶液滴在在培养皿中心。 x.3 显微镜使用 我们按照1, 2, 3, 4的顺序打开显微镜, 打开电脑&…

降级python

起因: python版本过高不能下载一个包,需要降级 首先使用 python --version 查看python版本 然后conda install python3.10 python3.10会下载到这个目录下(这个千万别找错) 然后更换路径 alias python/home/zky/.conda/envs/c…

【MAC+IP】以太网帧格式

图片出自:https://info.support.huawei.com/info-finder/encyclopedia/zh/MTU.html

FFmpeg 硬件加速视频转码指南

基于 Windows 下演示,Linux 下也可以适用。 所使用 ffmpeg 版本为 BtbN 编译的 win64-gpl 版(非 gpl-share),项目地址:BtbN / FFmpeg-Builds 也可以使用 gyan.dev 编译的 git-full 版,地址:gyan…

053基于web+springboot的宠物咖啡馆平台的设计与实现

欢迎大家关注,一起好好学习,天天向上 文章目录 一项目简介技术介绍 二、功能组成三、效果图四、 文章目录 一项目简介 本基于Spring Boot的宠物咖啡馆平台的设计与实现有管理员和用户以及看护师三个角色。用户功能有个人中心,咖啡菜品管理&a…

微信视频号直播间引流粉丝脚本软件实操教学,文章加视频演示详细教学方法

我是小刘,第一我要讲的是为什么要做视频号? 今天我们来去演示的是视频号直播间引流脚本的一个教学,我这边用文章加视频讲解的方法来分享给大家。关于引流有两点,1 就是自媒体推广,2就是脚本引流,我今天给大…

定时任务场景下的代码审查:continue和return的滥用可能引发潜在bug

文章目录 前言for 循环中的continue,break和return实际业务中的滥用总结写在最后 前言 在最近的代码审查中,有帮忙审查了组里一个刚毕业1年不到的应届生,发现他写的其中一段代码将for循环中的break、continue、return滥用,导致了…

口碑超好高质量经典小说,收获无数赞誉,完结多年还是热门之作

经典好文,小郑来为您推荐五本值得一读的好书,这些书籍不仅可以让您的时间不再无聊,还能让您在阅读中获得更多的知识和乐趣。 《传说管理局》 这本书的世界观严谨且庞大,充满了科幻和玄幻元素。如果您喜欢科幻和玄幻类型的书籍&am…

力扣:149. 直线上最多的点数(Python3)

题目: 给你一个数组 points ,其中 points[i] [xi, yi] 表示 X-Y 平面上的一个点。求最多有多少个点在同一条直线上。 来源:力扣(LeetCode) 链接:力扣(LeetCode)官网 - 全球极客挚爱…

记一次heapdump泄漏获取服务器权限

文章目录 一、漏洞原因二、漏洞利用三、漏洞进一步利用1、工具下载2、通过关键字查询3、通过配置redis的默认账号和密码进行登录4、添加定时计划任务,进行反弹shell5、成功获取服务器的shell补充四、总结五、免责声明一、漏洞原因 扫描目录发现某个spring框架存在大量泄露信息…