私は2つのテーブルを持っています:
table A
id | level_ID | col_m | col_n
table B
id | prev_ID | cur_ID
table A
新しい挿入と更新が行われるアプリケーション層から操作されます。一方、トリガーを介した列のtable B
更新後にのみ値が挿入されます。level_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
問題は、列に変更がある場合にのみトリガーを起動するつもりであることです。他の列の更新であり、トリガーを起動しないcol_m
でください。col_n
そのままではうまくいかないので、私のトリガーステートメントを手伝ってください。
編集
列の更新は、アプリケーション ロジック内でさまざまなタイミングで行われます。更新が完了したときにのみトリガーを起動する必要がありlevel_ID
ます。