news 2026/4/23 8:23:19

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/4/18 20:51:08

BiliRaffle终极教程:2025年B站动态抽奖全自动解决方案

作为一名B站UP主,你是否曾经为繁琐的抽奖流程而烦恼?手动统计评论、转发数据不仅耗时耗力,还容易出错。BiliRaffle正是为解放你的双手而生的专业抽奖工具,通过智能化流程让B站动态抽奖变得轻松高效。 【免费下载链接】BiliRaffle …

作者头像 李华
网站建设 2026/4/17 20:20:24

Upscayl图像放大色彩管理终极指南:完全解决偏色与失真问题

Upscayl图像放大色彩管理终极指南:完全解决偏色与失真问题 【免费下载链接】upscayl 🆙 Upscayl - Free and Open Source AI Image Upscaler for Linux, MacOS and Windows built with Linux-First philosophy. 项目地址: https://gitcode.com/GitHub_…

作者头像 李华
网站建设 2026/4/16 11:19:59

Arduino CLI 命令行工具实战指南:从问题到解决方案的完整工作流

Arduino CLI 命令行工具实战指南:从问题到解决方案的完整工作流 【免费下载链接】arduino-cli Arduino command line tool 项目地址: https://gitcode.com/gh_mirrors/ar/arduino-cli 如果你正在寻找一种更高效、更自动化的 Arduino 开发方式,Ard…

作者头像 李华
网站建设 2026/4/18 10:22:01

AShareData:构建专业级A股数据仓库的完整指南

在量化投资和金融数据分析领域,拥有一个稳定可靠的本地数据仓库是成功的关键。AShareData项目为投资者和研究人员提供了一套完整的A股数据自动化获取与管理解决方案,让数据管理变得简单高效。 【免费下载链接】AShareData 自动化Tushare数据获取和MySQL储…

作者头像 李华
网站建设 2026/4/20 14:09:58

零配置启动Qwen3-VL:自动化脚本简化部署流程提升效率

零配置启动Qwen3-VL:自动化脚本简化部署流程提升效率 在多模态大模型迅速落地的今天,一个现实问题始终困扰着开发者和中小团队:如何让像 Qwen3-VL 这样功能强大的视觉语言模型真正“用起来”?不是在论文里读一读性能指标&#xf…

作者头像 李华
网站建设 2026/4/20 2:02:55

Winhance-zh_CN:终极Windows系统优化与个性化工具完整指南

Winhance-zh_CN:终极Windows系统优化与个性化工具完整指南 【免费下载链接】Winhance-zh_CN A Chinese version of Winhance. PowerShell GUI application designed to optimize and customize your Windows experience. 项目地址: https://gitcode.com/gh_mirror…

作者头像 李华