MySQL触发器实战:订单操作自动更新商品库存

5 下载量 41 浏览量 更新于2024-08-30 收藏 96KB PDF 举报
MySQL数据库教程之十五深入探讨了MySQL触发器的概念与实际应用。触发器是一种特殊的存储过程,它会在特定的数据操作(如INSERT, UPDATE, DELETE)执行前后自动执行,从而实现了对数据的自动管理和一致性控制。在这个教程中,我们主要学习了两个具体的触发器实例。 首先,任务一是关于订单表(Orders)中的数据变化如何影响商品表(Goods)。通过创建一个名为`tri_insert_orders`的`AFTER INSERT`触发器,当在Orders表中新增一条订单时,触发器会自动更新Goods表中对应商品的数量,减少库存。例如,如果新订单中商品A0001的数量为51,那么在插入订单后,商品A0001的库存将减少51个单位。 创建触发器的SQL语句是: ```sql CREATE TRIGGER tri_insert_orders AFTER INSERT ON Orders FOR EACH ROW BEGIN UPDATE Goods SET num = num - NEW.onum WHERE gid = NEW.gid; END; ``` 验证这一触发器的工作效果,可以向Orders表中插入一条新的订单记录,然后检查Goods表中商品A0001的数量是否相应减少。 其次,任务二是处理订单取消的情况。当用户取消订单时,需要恢复商品表中相应商品的数量。为此,我们创建了一个`AFTER DELETE`触发器`tri_cancle_orders`,当Orders表中有一条订单被删除时,触发器会增加Goods表中该商品的数量。这样,当订单被取消时,库存就会自动增加。 触发器的SQL语句为: ```sql CREATE TRIGGER tri_cancle_orders AFTER DELETE ON Orders FOR EACH ROW BEGIN UPDATE Goods SET num = num + OLD.onum WHERE gid = OLD.gid; END; ``` 验证这个触发器,可以通过在Orders表中删除一个订单,然后查看Goods表中对应商品的数量是否恢复到之前的状态。 这两个触发器实例展示了如何在MySQL中利用触发器实现业务逻辑,确保数据的一致性,提高了数据库管理的自动化程度。理解并熟练运用触发器是提高数据库性能和维护数据库完整性的重要技能。