mysql 学习11 事务,事务简介,事务操作,事务四大特性,并发事务问题,事务隔离级别

一 事务简介,

数据库准备:

create table account(id int auto_increment primary key  comment '主键ID',name varchar(128) not null comment '姓名',backaccountnumber char(18) unique  comment '银行账号',money float comment '余额'
)comment '银行账号表';#drop table account;insert into accountvalues (null,'张三','123412341234123412',2000),(null,'lisi','123412341234123413',8000),(null,'wangwu','123412341234123414',9000);

二 事务操作,

由于mysql 默认的一条一条sql语句都是 默认开启事务的。

当我们执行三条sql语句的时候,1,2都成功了,但是3失败了,就会造成问题

这三条sql语句是:张三给李四的账号转1000块

        1.查询张三的账号的钱 大于1000块

        2. 张三money = money-1000;

        3, 李四money  = money +1000;

事务的操作的两种方式

select @@autocommit;
set @@autocommit = 0;select * from account where name = '张三';
update account set money = money-1000 where name = '张三';
update account set money = money+1000 where name = 'lisi';commit ;rollback ;

start transaction ;select * from account where name = '张三';
update account set money = money-1000 where name = '张三';
update account set money = money+1000 where name = 'lisi';commit;rollback ;

三 事务四大特性,

四 并发事务问题,

并发事务问题:指的是 A 事务  和 B事务 在同时 操作某一个章表的时候,发生的问题。

脏读

事务A 有三步:
    start transaction ;

    1. select money from account where id =1; # 查询 id 为1的银行账户
    2. update account set money = money+30000 where id = 1;  #工资发了3万
    3. update account set money = money+80000 where id = 1; # 奖金发了8万

    commit;

事务B 也有三步:
    start transaction ;

    1. select money from account where id =1; # 查询 id 为1的银行账户
    2. update account set money = money-10000 where id = 1;  #买了个华为手机
    3. update account set money = money-30 where id = 1; # 吃了个中午饭

    commit;

脏读发生的时机:事务B 读取到了 事务A 还没有commit的数据

当事务A 执行了第一步和第二步的时候,注意,这时候事务A 还没有提交

这时候事务B 执行了第一步,查询,会看到 账户已经加了3万块钱了

这个就是脏读

不可重复读

一个事务先后读取同一个数据,但是第一次 和 第二次 读取到的数据不同。

事务A 有4步:
    start transaction ;

    1. select money from account where id =1; # 查询 id 为1的银行账户,发现值是1000
    2. ......
    (这时候事务B 执行完3步后,提交了)
    3. select money from account where id =1; # 查询 id 为1的银行账户,发现值是2000
    4. .......
    commit;

事务B 有三步:
    start transaction ;

    1. select money from account where id =1; # 查询 id 为1的银行账户
    2. update account set money = 1000 where id = 1;  #钱变成了1000
    3. select money from account where id =1; # 查询 id 为1的银行账户

    commit;

幻读

五 事务隔离级别

那么前面遇到的 并发事务问题,应该怎么解决呢? 通过 设置 事务隔离级别 就可以解决。

# 查看当前 事务级别 是啥
select @@transaction_isolation;# 设置 事务级别 session 代表会话级别的,只是对当前窗口有效; global 代表全局生效,即当前窗口和其他窗口都生效
set session  transaction isolation level read uncommitted ;
set session transaction isolation level read committed ;
set session  transaction isolation level repeatable read ;
set session transaction isolation level serializable ;

六 总结

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

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

相关文章

重塑生产制造企业项目管理新范式:项目模板在Tita中的卓越实践

在竞争激烈的生产制造领域,每一个项目的成功执行都是企业稳健前行的重要基石。然而,面对复杂多变的生产流程、严格的交货期限以及不断变化的客户需求,如何确保项目高效、有序地进行,成为了众多企业面临的共同挑战。此时&#xff0…

AI知识库和全文检索的区别

1、AI知识库的作用 AI知识库是基于人工智能技术构建的智能系统,能够理解、推理和生成信息。它的核心作用包括: 1.1 语义理解 自然语言处理(NLP):AI知识库能够理解用户查询的语义,而不仅仅是关键词匹配。 …

1-1二分查找

二分查找 1 基础版1.1 算法描述1.2 算法流程图1.3 算法实现1.3.1 Java实现 2 改动版2.1 算法描述2.2 算法流程图2.3 算法实现2.3.1 Java实现 2.4 改进点分析2.4.1 区间定义差异2.4.2 核心改进原理2.4.3 数学等价性证明 3 平衡版3.1 算法描述3.2 算法流程图3.3 算法实现3.3.1 Ja…

Elasticsearch去分析目标服务器的日志,需要在目标服务器上面安装Elasticsearch 软件吗

Elasticsearch 本身并不直接收集目标服务器的日志,它主要用于存储、搜索和分析数据。要收集目标服务器的日志,通常会借助其他工具,并且一般不需要在目标服务器上安装 Elasticsearch 软件,常见的日志收集方案: Filebeat…

Ajax-介绍

概念: Asynchronous JavaScript And XML,异步的JavaScript和XML. 作用: 数据交换:通过Aiax可以给服务器发送请求,并获取服务器响应的数据 异步交互: 可以在不重新加载整个页面的情况下,与服务器交换数据并更新部分网页的技术, 如:搜索联想、…

论软件架构风格论文

摘要: 本人于2023年1月参与广东省某公司委托我司开发的“虚拟电厂”项目,主要负责系统整体架构设计和中间件选型。该项目为新型电力存储、电力调配、能源交易提供一套整体的软件系统。本文以虚拟电厂项目为例,主要讨论架构风格在本项目中的具体应用,主要包括如下,底层架构…

基于可信数据空间的企业数据要素与流通体系建设(附ppt 下载)

近期,可信数据空间会议召开。大数据系统软件国家工程研究中心总工程师王晨发表了题为《基于可信数据空间的企业数据要素与流通体系建设》主旨演讲。 WeChat Subscription Account【智慧城市指北】,可搜索相关关键字“20250107”,可获取具体获…

idea整合deepseek实现AI辅助编程

1.File->Settings 2.安装插件codegpt 3.注册deepseek开发者账号,DeepSeek开放平台 4.按下图指示创建API KEY 5.回到idea配置api信息,File->Settings->Tools->CodeGPT->Providers->Custom OpenAI API key填写deepseek的api key Chat…

CentOS 7配置samba服务设置文件共享

CentOS 7配置samba服务设置文件共享 一、生成另一个Linux系统,名为Linux-client,作为测试系统。 [rootliunx-client ~]# hostnamectl set-hostname Liunx-client二、如果没有则安装Samba服务,如果已经安装则省略此步。 yum install samba…

Composo:企业级AI应用的质量守门员

在当今快速发展的科技世界中,人工智能(AI)的应用已渗透到各行各业。然而,随着AI技术的普及,如何确保其可靠性和一致性成为了企业面临的一大挑战。Composo作为一家致力于为企业提供精准AI评估服务的初创公司,通过无代码和API双模式,帮助企业监测大型语言模型(LLM)驱动的…

##__VA_ARGS__有什么作用

##__VA_ARGS__ 是 C/C 中宏定义(Macro)的一种特殊用法,主要用于可变参数宏(Variadic Macros)的场景,解决当可变参数为空时可能导致的语法错误问题。以下是详细解释: 核心作用 消除空参数时的多余…

增加工作台菜单页面,AI问答应用支持上下文设置,数据库表索引优化,zyplayer-doc 2.4.8 发布啦!

zyplayer-doc是一款适合企业和个人使用的WIKI知识库管理工具,支持在线编辑富文本、Markdown、表格、Office文档、API接口、思维导图、Drawio以及任意的文本文件,专为私有化部署而设计,最大程度上保证企业或个人的数据安全,支持以内…

线性dp-拍照

问题描述 小椒是个摄影爱好者。恰逢班级合照,他受邀帮忙拍照(站成一排)。这本是一件简单的事,但由于啾啾是个完美主义者,他希望他拍的照片必须符合美学,即存在一个身高较大值,使得较大值无论是…

C++开发(软件开发)常见面试题

目录 1、C里指针和数组的区别 2、C中空指针请使用nullptr不要使用NULL 3、http/https区别和头部结构? 4、有了mac地址为什么还要ip地址?ip地址的作用 5、有了路由器为什么还要交换机? 6、面向对象三大特性 7、友元函数 8、大端小端 …

智能理解 PPT 内容,快速生成讲解视频

当我们想根据一版 PPT 制作出相对应的解锁视频时,从撰写解锁词,录制音频到剪辑视频,每一个环节都需要投入大量的时间和精力,本方案将依托于阿里云函数计算 FC 和百炼模型服务,实现从 PPT 到视频的全自动转换&#xff0…

Qt —— 加载百度离线地图、及简单绘图(附源码)

效果 说明 软件代码已下载了某区域的离线瓦片地图,通过百度离线api进行调用的地图效果。 源码 void PointMapTEST

C++ Attribute 属性说明符

目录 属性说明符 Attribute编译警告相关[[deprecated]][[maybe_unused]][[fallthrough]][[nodiscard]] 可能触发编译优化[[noreturn]][[likely]]、[[unlikely]][[assume]][[carries_dependency]][[no_unique_address]] 属性说明符 Attribute 属性说明符Attribute自C11起&#…

openEuler部署 sysstat工具

查看环境 [rootlocalhost lxm]# cat /etc/os-release NAME"openEuler" VERSION"23.09" ID"openEuler" VERSION_ID"23.09" PRETTY_NAME"openEuler 23.09" ANSI_COLOR"0;31"查看 yum 源 [rootlocalhost lxm]# he…

第八届大数据与应用统计国际学术研讨会(ISBDAS 2025)

重要信息 官网:www.is-bdas.org 时间:2025年2月28-3月2日 地点:中国 广州 主办单位:广东省高等教育学会人工智能与高等教育研究分会 协办单位:北京师范大学人工智能与未来网络研究院、人工智能与大数据科研基地 …

Dify使用

1. 概述 官网:Dify.AI 生成式 AI 应用创新引擎 文档:欢迎使用 Dify | Dify GITHUB:langgenius/dify: Dify is an open-source LLM app development platform. Difys intuitive interface combines AI workflow, RAG pipeline, agent capabilities, model management, ob…