首页 > 代码库 > 使用触发器做简单编程
使用触发器做简单编程
有两张表(商品表和订单表,结构如下)
CREATE TABLE goods ( gid int(11) DEFAULT NULL, name varchar(20) DEFAULT NULL, num smallint(6) DEFAULT NULL);CREATE TABLE ord ( oid int(11) DEFAULT NULL, gid int(11) DEFAULT NULL, much smallint(6) DEFAULT NULL);插入数据:INSERT INTO goods VALUES (‘1‘,‘cat‘,‘32‘), (‘2‘,‘dog‘,‘65‘), (‘3‘,‘pig‘,‘21‘);
业务场景如下:
客户如果买的东西超过了库存(goods表的num字段),如何预防,能否在购买量(插入ord表的much字段)>库存量(goods表的num字段)时,把much自动改为num
使用触发器:
create trigger tbeforeinserton ordfor each rowbegindeclarernum int;select num into rnum from goods where gid = new.gid;if new.much > rnum then set new.much = rnum;end if;update goods set num = num - new.much where gid=new.gid;end
使用触发器做简单编程
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。