# Trigger über mehrere Tabellen



## darkie_max (17. Juni 2004)

Hi,
ich mach mir grad nen Trigger um Logs über mehrere Tabellen hinweg zu erstellen d.h. wenn er in einen der angegebenen Tabellen etwas ändert, soll er die Aktion sowie den Tabellennamen in einer LogsTabelle ablegen.

Mit einer Tabelle ist das ja einfach.... da schreib ich den Trigger für die Tabelle und frag in ner if-clausel nach INSERTING, UPDATING..... und mache danach einen dementsprechenden Eintrag für die LogTabelle.

Allerdings will ich ja mit einem Trigger mehrere Tabellen erschlagen und dafür also nur einen Trigger (statt für jede Tabelle einen) erstellen. Bei dem ist dann aber natürlich das Prob, dass ich nicht weiß wie er unterscheiden soll welche Tabelle gerade UPGEDATED.... wurde.

Beispiel für eine Tabelle:
CREATE OR REPLACE TRIGGER LogIt  
AFTER DELETE OR UPDATE OR INSERT ON TestTabelle
FOR EACH ROW
DECLARE
  action VARCHAR2(31);
  ort VARCHAR2(31);
BEGIN

  ort := TestTabelle;

  IF DELETING THEN action := 'delete';
  ELSIF UPDATING THEN action := 'update';
  ELSIF INSERTING THEN action := 'insert';
  ELSE action := 'unknown';  
  END IF; 

  INSERT INTO LogTab VALUES(PK_Generator.NEXTVAL,SYSDATE,action,ort);

END;


Also eigentlich brauch ich genau das gleiche für mehrere Tabellen, wobei "ort" dynamsich auf den Tabellennamen gesetzt werden soll.

Hat jemand ne Idee?

Gruß

Maxi


----------



## Thomas Darimont (17. Juni 2004)

Hallo!

Warum bastelst Du Dir nicht einfach eine View zusammen, die dann die Tabellen darstellt? Du kannst IMHO auch auf Views Trigger legen.

Gruß Tom


----------

