mysql 触发器开荒

来源:互联网 发布:002348是人工智能吗 编辑:程序博客网 时间:2024/06/11 00:30

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

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

/*更新触发器*/DROP TRIGGER IF EXISTS t_update_on_t_tradefee;CREATE TRIGGER t_update_on_t_tradefee BEFORE UPDATE ON t_tradefee FOR EACH ROWBEGIN         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_tradefeeAFTER INSERT ON t_tradefeeFOR EACH ROWBEGIN         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列改变后的值-改变前的值。
0 0