mysqlトリガ開墾
3050 ワード
mysqlフリップフロップは普段あまり使ったことがないので、今回使ったので、とても便利だと思います.使い方を簡単にまとめる.
まず、私が書いた2つのトリガを見てみましょう.
次の点に注意してください. ifは中にスペースがないと判断します.ここは 更新トリガ
まず、私が書いた2つのトリガを見てみましょう.
/* */
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;
次の点に注意してください.
!=0
前後です.そうしないと、報告が間違っています.before update
ではなく、変更前後の値を使用するにはafter
を使用する必要があります.NEW.margin_profit - OLD.margin_profit
ここでmargin_profit列変更後の値-変更前の値.