在表中更新字段Y时,使用当前时间戳更新字段X

时间:2019-03-18 12:07:25

标签: mysql

我在一个项目上使用mysql,并且每次password_last_updated字段被更新时,我都需要更新password(时间戳)字段。有没有一种方法可以使用mysql检测password列上的更新,并且一旦更新发生,password_last_updated列将自动使用当前时间戳进行更新?

1 个答案:

答案 0 :(得分:3)

您应该能够使用触发器来执行此操作,该触发器检查密码值的更改,如果不同,则将password_last_updated设置为current_timestamp

DELIMITER //
CREATE TRIGGER  update_ts
BEFORE UPDATE ON accounts
FOR EACH ROW
BEGIN
  IF NEW.password != OLD.password THEN
    SET NEW.password_last_updated = CURRENT_TIMESTAMP();
  END IF;
END //
DELIMITER ;

Demo on dbfiddle