でTHEN文で私は2つのテーブルがあります。IF ... MySQLのトリガー
table A
id | level_ID | col_m | col_n
table B
id | prev_ID | cur_ID
table A
は、新しい挿入が同様に行われ、アップデートされているアプリケーション層から操作されています。
DELIMITER |
DROP TRIGGER IF EXISTS trigger_happy|
CREATE TRIGGER trigger_happy AFTER UPDATE ON table A
FOR EACH ROW
BEGIN
IF level_ID!=NEW.level_ID THEN
INSERT INTO table B (id, cur_ID, prev_ID)
VALUES (OLD.id, NEW.level_ID, OLD.level_ID)
END IF;
END;
DELIMITER ;
問題は、私はlevel_ID
列に変更があった場合、トリガーだけ火を持っているつもりということです。一方table B
で唯一のトリガーを介したtable A
のlevel_ID
欄に更新した後に挿入された値を持っています。他の列col_m
とcol_n
の更新はトリガを起動しません。
私のトリガーステートメントは、そのまま動作しないため、助けてください。
EDITは
アップデートの列は、アプリケーション・ロジック内の異なる時間に行われます。 level_ID
の更新が行われた場合にのみトリガする必要があります。
あなたの答えを親切に解説します。編集を参照してください。 – gabeno