MySQLでは、行が変更されるたびに列changetimestamp
を更新する場所でこれを実行できます。
create table ab (
id int,
changetimestamp timestamp
NOT NULL
default CURRENT_TIMESTAMP
on update CURRENT_TIMESTAMP
);
PostgreSQLで上記を行うのに似た何かがありますか?
次のように、テーブルのchangetimestamp列を更新する関数を作成します。
CREATE OR REPLACE FUNCTION update_changetimestamp_column()
RETURNS TRIGGER AS $$
BEGIN
NEW.changetimestamp = now();
RETURN NEW;
END;
$$ language 'plpgsql';
次のように更新が発生するたびにupdate_changetimestamp_column()関数を呼び出すトリガーをテーブルに作成します。
CREATE TRIGGER update_ab_changetimestamp BEFORE UPDATE
ON ab FOR EACH ROW EXECUTE PROCEDURE
update_changetimestamp_column();