史上最简单的 MySQL 教程(四十一)「触发器」

释放双眼,带上耳机,听听看~!

案例:网上购物,根据生产订单的类型,商品的库存量对应的进行增和减。此案例涉及两张表,分别为订单表和商品表,下单时,商品表库存减少;退单时,商品表库存增加。如何实现?

触发器

触发器:trigger,是指事先为某张表绑定一段代码,当表中的某些内容发生改变(增、删、改)的时候,系统会自动触发代码并执行

触发器包含三个要素,分别为

  • 事件类型:增删改,即insert、delete和update;
  • 触发时间:事件类型前和后,即before和after;
  • 触发对象:表中的每一条记录(行),即整张表。

每张表只能拥有一种触发时间的一种事件类型的触发器,即每张表最多可以拥有 6 种触发器

创建触发器


1
2
3
4
5
6
7
8
9
10
1-- 创建触发器基本语法
2delimiter 自定义符号 -- 临时修改语句结束符,在后续语句中只有遇到自定义符号才会结束语句
3create trigger + 触发器名称 + 触发器时间 + 事件类型 on 表名 for each row
4begin -- 代表触发器内容开始
5-- 触发器内容主体,每行用分号结尾
6end -- 代表触发器内容结束
7自定义符号 -- 用于结束语句
8delimiter ; -- 恢复语句结束符
9
10

根据上述案例的需求,我们先来创建两张表,分别为商品表goods和订单表orders,SQL 语句如下:


1
2
3
4
5
1-- 创建商品表
2create table goods(
3   id int primary key auto_increment,
4
5

给TA打赏
共{{data.count}}人
人已打赏
安全运维

OpenSSH-8.7p1离线升级修复安全漏洞

2021-10-23 10:13:25

安全运维

设计模式的设计原则

2021-12-12 17:36:11

个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索