特定のフィールドに変更があった場合にのみ、現在の時刻で自動的に更新される日時フィールドを作成しようとしています。
構文エラーがあるようです。 last_progress_date
はprogress_percentage
が更新/編集されました:
CREATE OR ALTER TRIGGER last_progress_date
ON wp_task_mgr
AFTER UPDATE
AS BEGIN
IF UPDATE (progress_percentage)
SET last_progress_date = GETDATE()
END
コードは有効なMysqlコードのように見えません:
ALTER
は有効なオプションではありませんAS
はありませんIF UPDATE(column)
UPDATE(column)
列がMysqlではなくSQLServerで更新されたかどうかをテストしますIF
構文が無効です( https://dev.mysql.com/doc/refman/5.5/en/if.html を確認してください)BEFORE
ではなくAFTER
トリガーで変更されているレコードの値を変更できます。あなたは何かが必要です
drop trigger if exists last_progress_date;
delimiter //
CREATE TRIGGER last_progress_date BEFORE UPDATE ON wp_task_mgr
FOR EACH ROW
BEGIN
--assuming progress_percentage is not nullable; if it is, the condition
-- needs to be modified to properly handle NULL values
IF (NEW.progress_percentage != OLD.progress_percentage)
THEN
SET NEW.last_progress_date = GETDATE();
END IF;
END;
//
DELIMITER ;