news 2026/11/4 6:48:23

Mysql学习笔记——事务

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Mysql学习笔记——事务

1、概述

2、操作

对上述案例进行讲解

数据:

create table account(
id int auto_increment primary key comment '主键ID',
name varchar(10) comment '姓名',
money int comment '余额'
) comment '账户表';

insert into account(id, name, money) VALUES (null,'张三',2000),(null,'李四',2000);

步骤如下:

# 查询张三的账户余额 select money from account where name='张三'; # 给张三的余额减1000 update account set money=money-1000 where name='张三'; # 给李四的余额加1000 update account set money=money+1000 where name='李四';

在第二个语句之后加上错误(...很关键!!!)

set @@autocommit=1是自动提交,0是手动提交

在提交事务前如果程序出错,会将数据存到当前中缓存,但此时表格的数据没有变化,此时执行回滚事务,可以在当前缓存中消除改变的数据,防止出现,一个人的钱已经减了,但是另一个的还没加

#查看设置提交方式 select @@autocommit; set @@autocommit=0; # 查询张三的账户余额 select money from account where name='张三'; # 给张三的余额减1000 update account set money=money-1000 where name='张三'; 程序出错... # 给李四的余额加1000 update account set money=money+1000 where name='李四'; #提交事务 commit; #回滚事务 rollback ;

一种是设置事务开启的格式,一种就是下图中的开启事务的代码

3、特性

4、并发事务问题

脏读:当事务A在执行更新数据的操作时(但是并没有将数据提交到数据库),事务B读到了未提交的数据

前后两次分别去读的时候,数据发生了变化(同一行的数据发生变化)

读的时候还没有数据,事务B插入并提交,之后事务A要插入的时候又不能插入,然后再去读,发现这个数据依然不存在,但又不能插入

5、事务隔离级别

‘对号’表示会出现这种情况!

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/11/4 1:25:10

师生交流论坛|基于springboot + vue师生交流论坛系统(源码+数据库+文档)

师生交流论坛 目录 基于springboot vue师生交流论坛系统 一、前言 二、系统功能演示 ​编辑 三、技术选型 四、其他项目参考 五、代码参考 六、测试参考 七、最新计算机毕设选题推荐 八、源码获取: 基于springboot vue师生交流论坛系统 一、前言 博主介…

作者头像 李华
网站建设 2026/11/3 15:33:51

二手商城|基于springboot + vue二手商城系统(源码+数据库+文档)

二手商城 目录 基于springboot vue二手商城系统 一、前言 二、系统功能演示 三、技术选型 四、其他项目参考 五、代码参考 六、测试参考 七、最新计算机毕设选题推荐 八、源码获取: 基于springboot vue二手商城系统 一、前言 博主介绍:✌️大…

作者头像 李华
网站建设 2026/11/3 20:04:28

20、帧缓冲区接口设计与 STBmenu 简易 UI 开发

帧缓冲区接口设计与 STBmenu 简易 UI 开发 1. sdl_hello 程序实现 首先,以 root 用户登录(密码为空),进入 sdl_hello 目录,构建并运行程序: laddie:~# cd /Code/src/examples/sdl_hello laddie:~# make laddie:~# ./sdl_hello运行后会看到相应的显示界面,按下空格键…

作者头像 李华
网站建设 2026/11/2 23:41:52

24、深入浅出:SNMP 实践指南

深入浅出:SNMP 实践指南 1. Net - SNMP 安装 即便你的系统当前未安装 Net - SNMP,它可能已包含在你的 Linux 发行版中,你可以检查一下安装光盘。不过要注意,不同的 Linux 发行版可能对 Net - SNMP 进行了修改,以符合它们自己对于默认文件位置的设定,并且可能包含不同的…

作者头像 李华
网站建设 2026/11/3 14:44:13

高级前端 Input 公共组件设计方案(Vue3 + TypeScript)

一、设计核心目标 功能完备性:覆盖日常/复杂输入场景,支持多类型、校验、格式化等高频需求;可扩展性:预留插槽、配置项,支持业务定制化(如前缀图标、后缀操作区);性能优化&#xff1…

作者头像 李华
网站建设 2026/11/3 12:19:31

前后端HTTPS及证书配置完整流程

前后端HTTPS及证书配置完整流程 mTLS双向认证请求测试 本文档详细记录前后端项目配置HTTPS协议、生成并部署证书、实现mTLS双向认证的全过程,适用于Vue3+Vite前端与NestJS后端架构(其他架构可参考核心逻辑)。配置完成后可实现前端与后端的安全HTTPS通信,并通过mTLS双向认证…

作者头像 李华