나는 여러 개의 테이블을 가지고 있으며 변경 사항, 변경 내용 및 변경 사항을 기록하려고합니다. PostgreSQL 9.2PostgreSQL 9.2 트리거가 다른 테이블에있는 데이터의 변경 사항을 기록합니다.
CREATE TABLE unitsref (
unitsrefid serial primary key,
units varchar,
unitname varchar,
inuse boolean,
systemuse varchar,
keynotes integer,
linkid integer
);
OLD를 사용하는 것이 가장 좋습니다. * IS DISTINCT FROM NEW. *?
CREATE TRIGGER log_unitsref
AFTER UPDATE ON unitsref
FOR EACH ROW
WHEN (OLD.* IS DISTINCT FROM NEW.*)
EXECUTE PROCEDURE log_unitsref();
나는 세 개의 필드 만 정말 관심이 :
recordtype varchar,
recordkey varchar,
changetype varchar,
personid integer,
changedate date,
changetime time,
changefrom varchar,
changeto varchar,
최선의 구문은 무엇입니까 :
units varchar,
unitname varchar,
inuse boolean,
내가 필드 테이블 이벤트 로그에서 이러한 변경 사항을 기록 할 이 작업을 수행하는 함수를 작성 하시겠습니까? 진행 Openedge에서 내가
create EventLog.
assign EventLog.PersonId = glb-Personid
EventLog.RecordType = "UnitsRef"
EventLog.RecordKey = UnitsRef.Units
EventLog.ChangeType = "Create"
EventLog.changeFrom = ""
EventLog.changeTo = ""
EventLog.changeDate = today
EventLog.changeTime = time
를 작성합니다하지만 난 세 개의 필드 만 정말 관심이 PostgreSQL을
뛰어난 표현이 매우 유용 할 때 - 내가 그 인식하지 않았다. 나는 변경 사항을 기록 할 필요가있는 약 20 개의 테이블을 가지고 있으므로 일반 솔루션을 찾았습니다. 이 링크를 사용하여 링크 당 TABLE audit.logged_actions를 사용하기 위해 테이블 이벤트 로그를 변경할 것입니다.나는 또한 감사/이벤트 로그를 별도의 스키마에 저장하는 것에 대해 궁금해했다. 감사합니다 https://github.com/ringerc/scrapcode/blob/master/postgresql/audit.sql – user1044111