MySQL创建简单触发器_mysql 创建简单触发器

本文介绍了如何使用MySQL创建触发器来自动化管理订单表与库存表之间的交互。当在订单表中插入或更新数据时,触发器会相应地更新产品表的库存。示例包括在插入订单时减少库存和在更新订单时防止库存爆仓的逻辑。
摘要由CSDN通过智能技术生成

最近看了燕十八mysql视频,想着写篇博客记录一下

文章上传整理与2017年9月26日 ,环境:win7-mysql5.6

触发器:

触发器就是让MySQL执行指定SQL语句之前/之后去自动执行某些操作或者说方法

结构:

CREATE TRIGGER `t1` //指定触发器名称

BEFORE //指定在sql执行之前后者之后 ,AFTER/BEFORE

UPDATE //哪些动作触发触发器update/insert/delete三选一

ON `t_test` //触发器的表

FOR EACH ROW //行级

begin //标记开始

//核心代码....

end; //标记结束

示例表:

一个订单表,一个产品表(库存表) ,订单表每修改或者增加一笔订单,相应的库存应当减少,假设库存为100

0818b9ca8b590ca3270a3433284dd417.png  

0818b9ca8b590ca3270a3433284dd417.png

需求1:

每插入一笔订单,对应的库存count减去much

全部代码:

CREATE TRIGGER `t_insert`

BEFORE

INSERT

ON `t_order`

FOR EACH ROW

begin

update t_product set count = count-new.much where id = new.pid;

end;如上 就实现了需求1  ,核心代码中有一个new对象

,new代表了新添加的t_order数据行,sql就不解释了

需求2:

修改订单实现对应的库存加或者减 ,并且限制不能爆仓

代码:

CREATE TRIGGER `t_update`

BEFORE

UPDATE

ON `t_order`

FOR EACH ROW begin

declare

pcount int;

select count into pcount from t_product where id = new.pid;

if new.much>pcount then

set new.much=pcount ;

end if;

update t_product set count=count+old.much-new.much where id=new.id;

end;

以上代码只是简单演示了在update一行数据时修改对应的库存,具体效果有待商榷

0818b9ca8b590ca3270a3433284dd417.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值