我創建了下一個觸發器以在更新或插入的情況下將資料從主表移動到歷史表。
CREATE OR REPLACE FUNCTION process_employee_hist() RETURNS TRIGGER AS $employee_hist$
BEGIN
IF (TG_OP = 'UPDATE') THEN
INSERT INTO employee_hist SELECT 'U', now(), user, NEW.*;
RETURN NEW;
ELSIF (TG_OP = 'INSERT') THEN
INSERT INTO employee_hist SELECT 'I', now(), user, NEW.*;
RETURN NEW;
END IF;
RETURN NULL;
END;
$employee_hist$ LANGUAGE plpgsql;
CREATE TRIGGER employee_hist
AFTER INSERT OR UPDATE ON employee
FOR EACH ROW EXECUTE PROCEDURE process_employee_hist();
此觸發器將所有資料從主表移動到歷史記錄。我只需要將更新后的移動到歷史表中。
uj5u.com熱心網友回復:
嘗試:
CREATE OR REPLACE FUNCTION process_employee_hist() RETURNS TRIGGER AS $employee_hist$
BEGIN
IF (TG_OP = 'UPDATE') THEN
INSERT INTO employee_hist SELECT 'U', now(), user, NEW.*;
RETURN NEW;
END IF;
RETURN NULL;
END;
$employee_hist$ LANGUAGE plpgsql;
CREATE TRIGGER employee_hist
AFTER UPDATE ON employee
FOR EACH ROW EXECUTE PROCEDURE process_employee_hist();
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/478880.html
標籤:PostgreSQL postgresql-9.1 postgresql-9.3 postgresql-9.4 postgresql-9.5
