首页 > 其他 > 详细

触发器_02(trigger)简单实例

时间:2021-04-11 16:30:51      阅读:12      评论:0      收藏:0      [点我收藏+]

1.已经介绍了触发器的定义以及适用场景,此时我们这里要实战一下:

1.首先我们设计一个触发器的场景
    这里我们有两张表,一个goods表:里面对应的是商品的各种信息(gid,gname,gmuch)
    一个订单表order:里面是用户下的订单(oid,gid,omuch)
    设计原理:每当用户下订单后,商品表中的对应的商品数量会随着订单表的数量改变而变

2. 建表
    create table goods(gid int not null,gname varchar(20),gmuch  int)engine=innodb;

    create table orders(oid int not null,gid int,omuch int ) engine=innodb;

3.插入数据
    insert into goods values(1,cat,100),(2,dog,200),(3,pig300);

2.创建触发器

语法:
create
trigger 触发器名称 after/before(触发时间) insert /update/delete(监视事件) on 表名(监视地址) for each row begin sql1; .. sql2; end
这里的逻辑是:当用户下订单时,买了几个商品后,goods的总商品数量就会减少几个,因此这里用的是关键字new,且用总商品数量-new.用户下的商品数量
create
trigger t1 after insert on orders for each row begin update goods set gmuch=gmuch-new.omuch where gid=new.gid; end $

如果这里逻辑是:当用户取消订单时,这里是要用关键字old, 具体操作是用总商品的数量+old.用户取消的商品的数量
   update goods set gmuch=gmuch+old.omuch where gid=old.gid;

 

触发器_02(trigger)简单实例

原文:https://www.cnblogs.com/zmc60/p/14643513.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!