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列改變後的值-改變前的值。
發佈了160 篇原創文章 · 獲贊 234 · 訪問量 59萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章