news 2026/5/23 17:09:58

SQL(5)- 事务

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
SQL(5)- 事务

1:事务简介

2:事务操作

3:事务四大特性

4:并发事务问题

5:事务隔离级别

一:事务简介

比如:转账,转账分为三个步骤(查询账户余额,xx账户余额-1000,xx账户余额+1000),而这三个步骤看成一个事务;

1:当执行完增删改之后,SQL事务默认自动提交;

use mydb2 create table account( id int auto_increment primary key comment '主键ID', name varchar(10) comment '姓名', money int comment '余额' )comment '账户表' show account insert into account (id,name,money) values(null,'张三',2000),(null,'王五',2000) --转账操作(张三给王五转1000) --正常操作 --1:查询张三余额 select * from account where name = '张三' --2:将张三账户余额-1000 update account set money = money - 1000 where name = '张三' 程序抛出异常 --3:将王五账户余额+1000 update account set money = money +1000 where name = '王五' ---异常操作(在2下面加层序抛异常) ---目前针对上面的SQL,相当于每一条SQL都是一个事务;所以要控制事务

二:事务操作

1:SQL默认自动提交事务;但是异常情况下,需要手动提交更保险

2:需要手动事务操作

1:select @@autocommit = 1 ; 表示事务自动提交

2:改为手动提交

set @@autocommit = 0

create table bank( id int auto_increment primary key comment '主键ID', name varchar(10) comment '姓名', money int comment '余额' )comment '余额表' show account insert into bank (id,name,money) values(null,'张三',2000),(null,'王五',2000) --查看事务是否是自动提交(1) select @@autocommit --设置为手动事务提交 set @@autocommit = 0 --转账操作(张三给王五转1000) --正常操作 --1:查询张三余额 select * from bank where name = '张三' --2:将张三账户余额-1000 update bank set money = money - 1000 where name = '张三' --3:将王五账户余额+1000 update bank set money = money +1000 where name = '王五' --4:提交事务 commit --5:当执行出错时,需要回滚 rollback

方法二:

-- 方法二: set @@autocommit = 1 --1:开启事务(手动提交事务) start transaction --1:查询张三余额 select * from bank where name = '张三' --2:将张三账户余额-1000 update bank set money = money - 1000 where name = '张三' 程序执行报错... --3:将王五账户余额+1000 update bank set money = money +1000 where name = '王五' --回滚(当前事务已经结束) rollback
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/23 15:16:12

开源电路板查看器OpenBoardView:突破性的.brd文件解析革命

开源电路板查看器OpenBoardView:突破性的.brd文件解析革命 【免费下载链接】OpenBoardView View .brd files 项目地址: https://gitcode.com/gh_mirrors/op/OpenBoardView 在电子设计领域,专业电路板查看软件往往价格昂贵且功能臃肿。OpenBoardVi…

作者头像 李华
网站建设 2026/5/23 15:13:50

Qwen3-VL滑雪姿态优化:空中动作稳定性评估

Qwen3-VL滑雪姿态优化:空中动作稳定性评估 在职业滑雪比赛中,一个微小的姿态偏差可能直接决定金牌归属。腾空瞬间的身体倾斜角度、四肢的协同程度、重心是否偏移——这些细节往往超出肉眼捕捉范围,传统依赖慢放回看和经验判断的方式已难以满足…

作者头像 李华
网站建设 2026/5/23 15:16:12

终极免费AI图像放大:Upscayl完整使用指南与色彩优化技巧

终极免费AI图像放大:Upscayl完整使用指南与色彩优化技巧 【免费下载链接】upscayl 🆙 Upscayl - Free and Open Source AI Image Upscaler for Linux, MacOS and Windows built with Linux-First philosophy. 项目地址: https://gitcode.com/GitHub_Tr…

作者头像 李华
网站建设 2026/5/23 15:14:03

Three.js与Qwen3-VL联动:根据自然语言指令生成3D场景代码

Three.js与Qwen3-VL联动:根据自然语言指令生成3D场景代码 在数字内容创作的边界不断被AI拓展的今天,一个引人深思的问题浮现出来:如果普通人不需要写一行代码,也能“说出”一个三维世界——那会怎样? 想象一下&#xf…

作者头像 李华
网站建设 2026/5/22 23:06:54

Winhance终极指南:快速提升Windows性能的免费工具

Winhance终极指南:快速提升Windows性能的免费工具 【免费下载链接】Winhance-zh_CN A Chinese version of Winhance. PowerShell GUI application designed to optimize and customize your Windows experience. 项目地址: https://gitcode.com/gh_mirrors/wi/Win…

作者头像 李华
网站建设 2026/5/23 0:25:41

Qwen3-VL医疗器械操作指南:AR叠加提示信息生成

Qwen3-VL医疗器械操作指南:AR叠加提示信息生成 在现代医院的ICU或手术室里,一台呼吸机的操作面板上密布着数十个按钮、旋钮和显示屏。新入职的护士面对这样的设备,即便手握厚厚的操作手册,仍可能因紧张而误触关键开关——这种场景…

作者头像 李华