0
変更を監査表に格納するためにトリガーを使用していますが、変更された列の値のみを格納します。変更された列の値を監査表にのみ挿入するトリガーの取得
BEGIN
IF NEW.history_of_repair_trigger_fired = 1 THEN
INSERT INTO history_of_repair SET
edit_date_time=NEW.last_edited_date_time,
edited_by=NEW.edited_by,
repair_id=NEW.repair_id,
tenant_name=NEW.tenant_name,
property_id=NEW.property_id,
priority=NEW.priority,
comments=NEW.comments,
signed_off=NEW.signed_off;
END IF;
END
現時点では、変更されていない値も監査テーブルに格納されていますが、これは望ましくありません。
変更された列のみを監査テーブルに保存するにはどうすればよいですか?
なぜすべての値を格納するのが望ましくないのか説明できますか?一般に、監査テーブルはテーブルの値の履歴として表示され、その時点のすべての値を変更の時刻とともに保存し、誰がそれを実行したかったかを知りたいと考えています。 – tvanfosson
本当に2つの理由 - 1)常にすべてを保存することが効率的であるとは確信できませんでしたか?そして、2)私は監査を使用して、変更された値、すなわち "氏名"が "bill"から "William" 11/04/09 15:47に変更されたことをユーザー:Chris Wattsが現在のレコードの下に表示することのみを意図しています。 – cw84