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

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

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

在PostgreSQL中有没有类似的东西?

创build一个如下所示更新表的changetimestamp列的函数:

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

在调用update_changetimestamp_column()函数的表上创build一个触发器,只要发生更新就像这样:

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