在MySQL中,我们可以在每次更改行时更新列changetimestamp
执行此操作:
create table ab (
id int,
changetimestamp timestamp
NOT NULL
default CURRENT_TIMESTAMP
on update CURRENT_TIMESTAMP
);
在PostgreSQL中是否有类似的内容?
答案 0 :(得分:100)
创建一个更新表的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();