我希望在事情发生变化时将旧记录保存在表格中。我尝试用这个documentation来做。但我仍然得到一个错误。错误是:关系系列不存在。
原始表:
CREATE TABLE "Terra_nub_v1"."Serie"
(
uuid uuid NOT NULL, -- t.b.v. pakbon
serie_nr integer NOT NULL,
aantal_slijpplaten integer,
producent text,
locatie text,
klaar boolean,
onderzocht boolean,
gerapporteerd boolean,
opmerking text,
verwijzing_hoofdrapportage text,
verwijzing_overige_rapportages text,
onderzoeksgebied polygon,
CONSTRAINT "Serie_pkey" PRIMARY KEY (serie_nr)
)
存档表:
CREATE TABLE "Terra_nub_v1".serie_history
(
uuid uuid NOT NULL,
serie_nr integer NOT NULL,
aantal_slijpplaten integer,
producent text,
locatie text,
klaar boolean,
onderzocht boolean,
gerapporteerd boolean,
opmerking text,
verwijzing_hoofdrapportage text,
verwijzing_overige_rapportages text,
onderzoeksgebied polygon,
datumtijd_wijziging timestamp without time zone,
aangepast_door text,
CONSTRAINT serie_history_pkey PRIMARY KEY (serie_nr)
)
我以这种方式制作触发器功能:
CREATE OR REPLACE FUNCTION "Terra_nub_v1".serie_history_trigger()
RETURNS trigger AS $BODY$
BEGIN
IF (TG_OP ='UPDATE') THEN
INSERT INTO Terra_nub_v1.serie_history SELECT OLD.*,NOW(), USER ;
RETURN OLD;
ELSEIF (TG_OP = 'DELETE') THEN
INSERT INTO Terra_nub_v1.serie_history SELECT OLD.*,NOW(), USER ;
RETURN OLD;
END IF;
RETURN NULL;
END;
$BODY$ LANGUAGE plpgsql VOLATILE;
Create Trigger serie_history_trigger
BEFORE UPDATE OR DELETE ON Terra_nub_v1.serie
FOR EACH ROW EXECUTE PROCEDURE process_emp_audit();
我正在使用postgres
问候