mysql 触发器开荒

mysql触发器平常没怎么用到过,这次用到了,感觉特别方便。简单总结一下用法。

先看一下我写的这两个触发器:

/*更新触发器*/
DROP TRIGGER IF EXISTS t_update_on_t_tradefee;
CREATE TRIGGER t_update_on_t_tradefee 
BEFORE UPDATE ON t_tradefee 
FOR EACH ROW
BEGIN
         IF (NEW.margin_profit - OLD.margin_profit)!=0 
         THEN
     insert into t_margin_profit(cardno,op_time,price,t_tradeFee_id) values(SUBSTRING(new.cardno,1,3),NOW(),NEW.margin_profit - OLD.margin_profit,NEW.id);
         END IF;

END;
/*添加触发器*/
DROP TRIGGER IF EXISTS t_insert_on_t_tradefee;
CREATE TRIGGER t_insert_on_t_tradefee
AFTER INSERT ON t_tradefee
FOR EACH ROW
BEGIN
         IF new.margin_profit!=0 then
     insert into t_margin_profit(cardno,op_time,price,t_tradeFee_id) values(SUBSTRING(new.cardno,1,3),NOW(),NEW.margin_profit,NEW.id);          
         END IF;    
END;

需要注意的是:

  • if判断里面不能有空格,这里就是!=0前后,否则报错。
  • 更新触发器如果要用到改变前后的值需要使用before update 而不是after,NEW.margin_profit - OLD.margin_profit 这里就是margin_profit列改变后的值-改变前的值。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值