在 PostgreSQL 中更新行时更新时间戳

在 MySQL 中,我们可以在每次更改行时更新列 changetimestamp的情况下执行此操作:

create table ab (
id int,
changetimestamp timestamp
NOT NULL
default CURRENT_TIMESTAMP
on update CURRENT_TIMESTAMP
);

在 PostgreSQL 中是否有类似的操作?

98067 次浏览

创建一个函数来更新表的 changetime戳列,如下所示:

CREATE OR REPLACE FUNCTION update_changetimestamp_column()
RETURNS TRIGGER AS $$
BEGIN
NEW.changetimestamp = now();
RETURN NEW;
END;
$$ language 'plpgsql';

在表上创建一个触发器,每当发生如下更新时,该触发器就调用 update _ changetimeamp _ column ()函数:

    CREATE TRIGGER update_ab_changetimestamp BEFORE UPDATE
ON ab FOR EACH ROW EXECUTE PROCEDURE
update_changetimestamp_column();