同じテーブル(同じ行)の別の列を更新する特定の列の更新時にMySQLトリガーを使用できますか?
create trigger my_trigger
BEFORE UPDATE OF col1, col2 ON TABLE_NAME
for each row
set NEW.col3 = NEW.col3 +1;
を使用して上記のコードを試しましたUPDATE OF col1, col2
。MySQLでは機能しません。正しい構文は何ですか、誰かが私にいくつかの例を指摘できますか?
同じテーブル(同じ行)の別の列を更新する特定の列の更新時にMySQLトリガーを使用できますか?
create trigger my_trigger
BEFORE UPDATE OF col1, col2 ON TABLE_NAME
for each row
set NEW.col3 = NEW.col3 +1;
を使用して上記のコードを試しましたUPDATE OF col1, col2
。MySQLでは機能しません。正しい構文は何ですか、誰かが私にいくつかの例を指摘できますか?
特定の列の更新時にのみトリガーを実行するように指定することはできませんが (UPDATE
レコード全体に影響します)、トリガー内でどの列が更新されたかをテストできます。
DELIMITER ;;
CREATE TRIGGER my_trigger BEFORE UPDATE ON TABLE_NAME FOR EACH ROW
IF NOT (NEW.col1 <=> OLD.col1 AND NEW.col2 <=> OLD.col2) THEN
SET NEW.col3 = NEW.col3 + 1;
END IF;;
DELIMITER ;