什么是触发器

触发器是数据库的一个程序。它用于监视数据表的行为。一旦发生数据表的行为,立即执行相应的SQL语句。

触发器的语法结构:

在SQL语句执行之后,监视每个触发器行表名的表触发器触发器的名称触发器事件的名称。

触发事件包括:

触发事件的时间——监听器在通常使用前在监视器上的行为是在

触发器执行的内容:增加、删除和更改

我们在创建订单表时需要注意,因为订单是MySQL中的一个关键排序。为了避免错误,我们可以添加反引号,表示这不是关键字。

案例研究:

生成订单后,应从相应的数据中减去相应的库存。

(1)建立两个表:一个商品表,一个订单表
MySQL >创建表的商品(goods_id主关键字auto_increment,goods_name VaR
char(64),shop_price十进制(10,2),goods_number int)引擎= mysiam默认字符集
= utf8;

MySQL >创建表`阶`(goods_id主关键字auto_increment,goods_name V
阿尔恰尔(64),buy_number int)引擎= mysiam默认的字符集utf8;

MySQL >插入商品值(null,'nokian85,2000,35),(空,'iphone4s ',4500,3)
(0)空,'lnmia ',5000,40),(空,'samsung ',4200,20);

从商品中选择*;
+ + + + ---------- ------------ ------------ -------------- +
goods_id goods_name shop_price | | | | goods_number |
+ + + + ---------- ------------ ------------ -------------- +
| 1 | nokian85 | 2000 | 35 |
| 2 | iPhone4S | 4500 | 30 |
| 3 | lnmia | 5000 | 40 |
| 4 |三星| 4200 | 20 |
+ + + + ---------- ------------ ------------ -------------- +

(2)创建触发器
MySQL >创建触发器alter_goods_number插入后对`阶`每行的了
日期货物集goods_number = goods_number-5哪里goods_id = 1;

MySQL >插入` `值为(1,'nokian85 ',5);

从商品中选择*;
+ + + + ---------- ------------ ------------ -------------- +
goods_id goods_name shop_price | | | | goods_number |
+ + + + ---------- ------------ ------------ -------------- +
| 1 | nokian85 | 2000 | 30 |
| 2 | iPhone4S | 4500 | 30 |
| 3 | lnmia | 5000 | 40 |
| 4 |三星| 4200 | 20 |
+ + + + ---------- ------------ ------------ -------------- +


新的使用MySQL >创建触发器在每一行命令alter_goods_number ` `插入后
日期货物集goods_number = goods_number-new.buy_number哪里goods_id = new.goods
_id;

MySQL >插入` `值为(4,'samsung ',5);

旧用

MySQL >创建触发器back_goods_number在每一行命令` UPD `删除后
吃的商品设置goods_number = goods_number + old.buy_number哪里goods_id = old.goods _
身份证件;

MySQL >删除`阶`哪里goods_id = 1;

更新(更新将撤销以前的订单并重新订购)

MySQL >创建触发器update_goods_number后更新为每行` ` U
更新商品设置goods_number = goods_number + old.buy_number-new.buy_number哪里去了
ods_id = new.goods_id;

MySQL >更新` `设置为buy_number = 10;