私はいくつかのテーブルを持っており、それらに変更が加えられたとき、変更が何であったか、誰が変更を加えたかをログに記録したいと思います。Postgresql 9.2
CREATE TABLE unitsref (
unitsrefid serial primary key,
units varchar,
unitname varchar,
inuse boolean,
systemuse varchar,
keynotes integer,
linkid integer
);
OLDを使用するためのベストプラクティスはありますか。*新しいものとは異なります。*?
CREATE TRIGGER log_unitsref
AFTER UPDATE ON unitsref
FOR EACH ROW
WHEN (OLD.* IS DISTINCT FROM NEW.*)
EXECUTE PROCEDURE log_unitsref();
私は3つの分野にのみ本当に興味があります:
units varchar,
unitname varchar,
inuse boolean,
これらの変更を次のフィールドを含むテーブルイベントログに記録したいと思います。
recordtype varchar,
recordkey varchar,
changetype varchar,
personid integer,
changedate date,
changetime time,
changefrom varchar,
changeto varchar,
これを行うための関数を書くための最良の構文は何ですか?進行中の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での最良の方法はわかりません