我在postgres数据库中每隔60天使用户密码失效会遇到一些麻烦:
CREATE RULE user_expiration AS ON UPDATE TO users DO INSTEAD UPDATE user SET user_expires = user_expires + '60'
每次用户更改密码时都会有效,但每次对记录发出更新时,它也会起作用。如何确保它仅更新更改密码事件?
答案 0 :(得分:1)
触发器是更好的解决方案。从版本9.0开始,它具有每column triggers个触发器,仅在某个列已更改时触发。在旧版本中,您必须在函数内部进行检查,在您希望更新user_expires列之前比较OLD.password和NEW.password。