编辑另一列时更新一个 mysql 列

mes*_*eeb 3 mysql trigger

我正在尝试制作一个日期时间字段,仅当某个字段发生更改时,该字段才会自动更新为当前时间。

看来我有语法错误。我尝试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
Run Code Online (Sandbox Code Playgroud)

a1e*_*x07 7

该代码看起来不像有效的 Mysql 代码:

  1. ALTER 不是一个有效的选项
  2. AS在 Mysql 中没有
  3. IF UPDATE(column)
  4. 最后,您可以更改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 ;
Run Code Online (Sandbox Code Playgroud)