在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();