mySql的事务(操作一下)

目录

  • 1. 简介
  • 2. 事务操作
  • 3. 四大特性
  • 4. 并发事务问题
  • 5. 脏读
  • 6. 不可重复读
  • 7. 幻读
  • 事务隔离级别
  • 参考链接

1. 简介

事务是一组操作的集合,它是一个不可分割的工作单位,事务会把所有的操作作为一个整体一起向系统提交或撤销操作请求,即这些操作要么同时成功,要么同时失败。
默认的MySQL的事务是自动提交的,当执行一条DML语句,MySQL会立即隐式的提交事务

2. 事务操作

  • 查看/设置事务提交方式
    SELECT @@autocommit;
    SET @@autocommit = 0;
  • 提交事务
    COMMIT;
  • 回滚事务
    ROLLBACK;
select * from commodity;select @@autocommit;-- 手动提交set @@autocommit = 0;-- 涨价
-- 1. 查询鼠标的价格select price from commodity where name = '鼠标';-- 2. 修改update commodity set price = price + 100 where name = '鼠标';update commodity set price = price + 100 where name = 'U盘';commit;-- 回滚事务rollback;
  • 开始事务
    START TRANSACTION 或 BEFIN;
  • 提交事务
    COMMIT;
  • 回滚事务
    ROLLBACK;

3. 四大特性

  • 原子性:事务是不可分割的最小操作单元
  • 一致性:事务完成时,必须使所有的数据都保持一致状态
  • 隔离性:数据库系统提供的隔离机制,保证事务在不受外部并发操作影响的独立环境下运行
  • 持久性:事务一旦回滚或提交,对数据库中的数据的改变是永久的

4. 并发事务问题

脏读:一个事务读到另外一个事务还没有提交的数据
不可重复读:一个事务先后读取一条记录,但两次读取的数据不同,称之为不可重复读
幻读:一个事务按照条件查询数据时,没有对应的数据行,但是在插入数据时,又发现这行数据已经存在,好像出现了“幻影”。

5. 脏读

设置事务隔离级别
set session transaction isolation leel read uncommitted;
设置事务隔离级别
开启事务
start transaction;
开启事务
修改aaa的money(尚未提交),然而事务A却变化了
在这里插入图片描述
回滚后,跟着变化
在这里插入图片描述
修改事务的隔离级别,同时开启事务
set session transaction isolation level read committed;
在这里插入图片描述
不再改变,可以解决脏读!!!
在这里插入图片描述

6. 不可重复读

不提交之前进行读取,提交后进行读取
同一个事务,结果却不一样!!!
在这里插入图片描述
在这里插入图片描述
把隔离级别再升一级
set session transaction isolation level repeatable read;
这个时候就不会出现不可重复读!!!

7. 幻读

在这里插入图片描述
在这里插入图片描述
这里存在了,报错!!!
设置隔离级别
set session transaction isolation level serializable;

事务隔离级别

画!表示无法解决
隔离级别

参考链接

无。。。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

html是什么?http是什么?

html Html是什么?http是什么? Html 超文本标记语言;负责网页的架构; http((HyperText Transfer Protocol)超文本传输协议; https(全称:Hypertext Transfer Protocol …

VMware 桥接网络突然无法上网

VMware 桥接网络突然无法上网 0. 问题1. 解决方法 0. 问题 昨天,VMware 桥接网络正常使用,今天突然无法上网。 1. 解决方法 打开VMware的虚拟网络编辑器,将桥接模式的网络从“自动”改成你要使用的网卡,问题解决。 完成&#…

Numpy

文章目录 一、数据维度的概念1.1常见的多维数据1.2numpy的维度、形状、轴1.2.1维度1.2.2形状1.2.3轴 1.3reshape()函数1.4numpy中行、列向量的表示1.5数组的迭代1.6添加/删除元素1.6.1append()1.6.2insert()1.6.3delete() 二、Ndarray对象2.1简介2.1.1常用属性2.1.2.ndarray对象…

Python | Leetcode Python题解之第160题相交链表

题目: 题解: class Solution:def getIntersectionNode(self, headA: ListNode, headB: ListNode) -> ListNode:A, B headA, headBwhile A ! B:A A.next if A else headBB B.next if B else headAreturn A

Office办公软件如何下载安装?Office 2021最佳的办公软件安装包资源分享!

Office软件这种文档格式的普及,得益于其高度的兼容性和通用性,使得用户能够轻松地在不同的电脑和平台上打开和编辑文件。 Office软件文档格式的通用性,意味着无论是Windows、macOS还是Linux等操作系统,用户都能无障碍地打开和浏览…

【源码】16国语言交易所源码/币币交易+期权交易+秒合约交易+永续合约+交割合约+新币申购+投资理财/手机端uniapp纯源码+PC纯源码+后端PHP

测试环境:Linux系统CentOS7.6、宝塔面板、Nginx、PHP7.3、MySQL5.6,根目录public,伪静态laravel5,开启ssl证书 语言:16种,看图 这套带前端uniapp纯源码,手机端和pc端都有纯源码,后…

经典电源电路基础(变压-整流-滤波-稳压)

1.电源电路的功能和组成 电子电路中的电源一般是低压直流电,先把220v交流电变换成低压直流电,再用整流电路变成脉动的直流电,最后用滤波电路滤除掉脉动直流中的交流成分后才能得到直流电。有的电子设备对电源的质量要求很高,所以…

用Copilot画漫画,Luma AI生成视频:解锁创意新玩法

近年来,随着人工智能技术的不断发展,各种创意工具也层出不穷。今天,我们就来介绍一种全新的创作方式:使用Copilot画漫画,再将漫画放入Luma AI生成视频。 Copilot:你的AI绘画助手 Copilot是一款基于人工智…

python之对接有道翻译API接口实现批量翻译

内容将会持续更新,有错误的地方欢迎指正,谢谢! python之对接有道翻译API接口实现批量翻译 TechX 坚持将创新的科技带给世界! 拥有更好的学习体验 —— 不断努力,不断进步,不断探索 TechX —— 心探索、心进取&…

深度神经网络——深度学习中的 RNN 和 LSTM 是什么?

引言 自然语言处理和人工智能聊天机器人领域许多最令人印象深刻的进步都是由 递归神经网络(RNN) 和长短期记忆(LSTM)网络。 RNN 和 LSTM 是特殊的神经网络架构,能够处理顺序数据,即按时间顺序排列的数据。…

款基于SpringBoot+Vue+ElementUI技术栈开发的自定义表单工具(已开源)

TDuck填鸭表单是一个开源的问卷调查系统,一款基于SpringBootVueElementUI技术栈开发的自定义表单工具,它不仅支持问卷调查,还能进行数据收集。TDuck团队经过两年的优化,使得社区版功能趋于稳定。2023年5月,团队推出了可…

HTML静态网页成品作业(HTML+CSS)—— 明星吴磊介绍网页(5个页面)

🎉不定期分享源码,关注不丢失哦 文章目录 一、作品介绍二、作品演示三、代码目录四、网站代码HTML部分代码 五、源码获取 一、作品介绍 🏷️本套采用HTMLCSS,未使用Javacsript代码,共有5个页面。 二、作品演示 三、代…

http穿透怎么做?

众所周知http协议的默认端口是80,由于国家工信部要求,域名必须备案才给开放80端口,而备案需要固定公网IP,这就使得开放http80端口的费用成本和时间成本变的很高。那么能不能利用内网穿透技术做http穿透呢?下面我就给大…

VMware Workstation 16安装ESXI7.0

一、新建虚拟机 根据新建虚拟机向导新建虚拟机,这里不在展示。 二、挂载ESXI7.0镜像 三、安装ESXI操作系统 1、打开电源 2、选择安装ESXI 回车,F11 选择安装位置,我这里只添加了一块盘,不用选择,回车 选择键盘&…

ComfyUI

文章目录 一、关于 ComfyUI特点快捷键QA你为什么做这个?这是给谁的? 二、安装1、Windows直接链接下载如何在另一个UI和ComfyUI之间共享模型? 2、Jupyter Notebook3、手动安装(Windows、Linux)AMD GPU(仅Lin…

CloudFlare 里如何设置参数传递的 301 重定向

自从接到【哈哈,笑死我了都,黔驴技穷了都!】一文里提到的代维客户订单,这两天明月就一直在加班加点的重新部署着客户的四个服务器,因为有三个都是 WordPress+WooCommerce 式的电商平台,很是有些费时费力,好在现在基本都搞定了,剩下的就是些细节方面的优化、调整了。期间…

深入了解RSA加密算法

目录 前言 一、什么是RSA? 二、RSA加密的基本概念 1.非对称加密 2.密钥生成 3.加密和解密 三、RSA加密的工作原理 四、RSA的应用场景 五、RSA加密解密的实现 六、RSA算法的局限性及改进措施 前言 在当今的数字化时代,信息的安全性成为了人们关注…

mongodb command

1. start and stop ./mongod --dbpath -dbpath /data/shard1/db --logpath -dbpath /data/shard1/db/logs/mongodb.log --fork mongod --shutdown --dbpath /data/shard1/db MongoDB基础篇-03-启动与关闭_mongodb启动和关闭-CSDN博客 2. 查看分片数据分布 mongo mongo01.c…

C++ | Leetcode C++题解之第160题相交链表

题目: 题解: class Solution { public:ListNode *getIntersectionNode(ListNode *headA, ListNode *headB) {if (headA nullptr || headB nullptr) {return nullptr;}ListNode *pA headA, *pB headB;while (pA ! pB) {pA pA nullptr ? headB : p…