0

postgres データベースで 60 日ごとにユーザー パスワードを無効にするのに問題があります。

CREATE RULE user_expiration AS ON UPDATE TO users DO INSTEAD UPDATE user SET user_expires = user_expires + '60'

これは、ユーザーがパスワードを変更するたびに機能しますが、レコードに更新が発行されるたびにも機能します。パスワード変更イベントでのみ更新されるようにするにはどうすればよいですか?

4

1 に答える 1

1

トリガーはより良い解決策です。バージョン9.0以降、列ごとのトリガー、特定の列が変更された場合にのみ起動するトリガーがあります。古いバージョンでは、関数内でチェックを行う必要があります。user_expires列を更新する前に、OLD.passwordとNEW.passwordを比較してください。

于 2010-09-28T16:22:28.483 に答える