3
create table foo (
insert_current timestamp default now(),
insert_previous timestamp,
bar int primary key,
baz varchar(10)
);
的數據將被替換現在,然後當新一批到達。我想跟蹤上一批插入的時間以及當前的時間戳。什麼是這樣做的好方法?
create table foo (
insert_current timestamp default now(),
insert_previous timestamp,
bar int primary key,
baz varchar(10)
);
的數據將被替換現在,然後當新一批到達。我想跟蹤上一批插入的時間以及當前的時間戳。什麼是這樣做的好方法?
我想創建一個觸發器,它會自動設置insert_current和insert_previous上UPDATE語句。
首先,創建觸發功能:
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();
當你更新行,的insert_current
值insert_current
複製到insert_previous
,並設置爲當前時間戳:
UPDATE foo
SET baz = 'whatever',
insert_previous = insert_current,
insert_current = NOW()
WHERE bar = 1;
謝謝,觸發正是我需要的。 –