业务描述:网上选课系统,当用户报名以后,管理员对该报名审核,如果审核通过(订单状态改为 1 ),并且课程表的 名额剩余数量(cCount -1)。必须是通过才 减 一
刚开始接触触发器,被怎么会,后来插了下百度,暂时的解决问题
解决方法如下:
在订单表(stu_order)中创建触发器,当订单表中的字段发生改变时触发,并且oStatus 修改为 1 时,修改课程表中的剩余数量 oCount -1,条件是订单表的oCID = 课程表的cID。
CREATE DEFINER=`root`@`%` TRIGGER `stu_order_after_update` AFTER UPDATE ON `stu_order` FOR EACH ROW BEGIN //触发器的开头语法,update:表示更改时触发,stu_order:表名
IF(old.oStatus <> 1) THEN // if判断,当stu_oStatus修改为1时,执行下面的语句
update stu_course set cCount=cCount - 1 where cID = old.oCID; //修改stu_course表的cCount字段,条件是stu_course.cID = stu_order.oCID
END IF;
END
这是我看的别人帖子,依葫芦画瓢
https://my.oschina.net/viakiba/blog/778794#0-qzone-1-71385-d020d2d2a4e8d1a374a433f596ad1440