您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息

【MySQL 14】触发器after和before

2024/4/29 16:53:00发布19次查看
after是先完成数据的增删改,再触发,触发的语句晚于监视的增删改操作,无法影响前面的增删改动作;也就是说先插入订单记录,再更新商品的数量;
before是先完成触发,再增删改,触发的语句先于监视的增删改,我们就有机会判断,修改即将发生的操作;
案例:
商品 g 表中 juzi 的数量只有20个,但是如果在订单o中加入超过20了,此时如何解决呢
#创建触发器test4 create trigger test4 after insert on `ord` for each row begin update goods set num= num - new.much where goods_id = new.gid; end$$
触发器使用before:
先触发,在判断处理之后再进行增删改不会,根据库存修改了订单的最大数量。当然我这只是简单的固定了一个值,其实可以用语句获取到动态的库存值。
#创建触发器test5 create trigger test5 before insert on `ord` for each row begin if new.much >26 then set new.much = 26; end if; update goods set num= num - new.much where goods_id = new.gid; end$$
以上就是 【mysql 14】触发器after和before的内容。
该用户其它信息

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录 Product