【摘要】 /*触发器trigger*/触发器的概念:监视某种情况并出发某种操作 例如: 一个电子商城商品表goods简称g: 主键 商品名 库存 1 电脑 28 2 手表 120 订单表o: 订单主键 订单外键 购买数量 1 2 3 2 ...
/*触发器trigger*/
触发器的概念:监视某种情况并出发某种操作
例如:
一个电子商城商品表goods简称g:
主键 商品名 库存
1 电脑 28
2 手表 120
订单表o:
订单主键 订单外键 购买数量
完成下单与减少库存逻辑:
Insert into o(商品外键, 购买数量) values (2, 3);
Update g set 库存 = 库存-3 if id = 2;
这两个逻辑可以堪称一个整体,或者说insert肯定会引发update
这就可以用到触发器,我们可以监视某个表的变化,当变化发生,触发一个表的操作。
要注意:
触发器可以监视:增删改操作,没有查
触发器可以触发:增删改操作,没有查
实例:
#建立商品表 create table g( id int, name varchar(10), num int )charset utf8; #建立订单表 create table o( oid int; gid int; much int; )charset utf8; #添加商品表 insert into g values(1, '猪', 22), (2, ‘'羊', 10), (3, '狗', 13); #买三只样 insert into o values(1, 2 3); #减少商品表的库存(更新) update g num = num -3 where id = 2;
触发器四要素:
监视地点:o表
监视操作:insert
触发操作:update
触发时间:after
因此上面的整个过程可以做成触发器(语法):
delimiter $;
create tigger tiggerName
After/Before insert/update/detele on tableName
F