MySQL高级【事务】第十章

  • 目录
  • ? 个人主页:爱吃豆的土豆
  • ? 如果文章对你有帮助、欢迎关注、点赞、收藏(一键三连)
  • ?人必有所执,方能有所成!

​​事务​​

​​概述​​

​​语法​​

​​代码验证​​

​​事务的四大特征​​


事务

概述

数据库的事务(Transaction)是一种机制、一个操作序列,包含了==一组数据库操作命令==。

事务把所有的命令作为一个整体一起向系统提交或撤销操作请求,即这一组数据库命令==要么同时成功,要么同时失败==。

事务是一个不可分割的工作逻辑单元。

这些概念不好理解,接下来举例说明,如下图有一张表

张三和李四账户中各有100块钱,现李四需要转换500块钱给张三,具体的转账操作为

  • 第一步:查询李四账户余额
  • 第二步:从李四账户金额 -500
  • 第三步:给张三账户金额 +500

现在假设在转账过程中第二步完成后出现了异常第三步没有执行,就会造成李四账户金额少了500,而张三金额并没有多500;这样的系统是有问题的。如果解决呢?使用事务可以解决上述问题

MySQL高级【事务】第十章

从上图可以看到在转账前开启事务,如果出现了异常回滚事务,三步正常执行就提交事务,这样就可以完美解决问题。

语法

  • 开启事务
START TRANSACTION;
或者
BEGIN;

代码验证

  • 环境准备
DROP TABLE IF EXISTS account;

-- 创建账户表
CREATE TABLE account(
id int PRIMARY KEY auto_increment,
name varchar(10),
money double(10,2)
);

-- 添加数据
INSERT INTO account(name,money) values('张三',1000),('李四',1000);