假设我有一张 table
create table foo (
insert_current timestamp default now(),
insert_previous timestamp,
bar int primary key,
baz varchar(10)
);
当新批处理到达时,数据将不时被替换。我想跟踪上一批插入的时间以及当前时间戳。执行此操作的好方法是什么?
最佳答案
我会创建一个触发器,自动在 UPDATE 语句上设置 insert_current 和 insert_previous。
首先,创建触发器函数:
CREATE OR REPLACE FUNCTION do_update() RETURNS "trigger"
AS $$
BEGIN
NEW.insert_previous := OLD.insert_current;
NEW.insert_current := NOW();
return NEW;
END;
$$
LANGUAGE plpgsql;
然后将触发器添加到您的表中:
CREATE TRIGGER do_update
BEFORE UPDATE ON foo
FOR EACH ROW
EXECUTE PROCEDURE do_update();
关于PostgreSQL:如何获取以前的插入时间戳,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10731211/