Hello,
das Thema hatten wir neulich schon so ähnlich.
Welche Datenbank und -Version benutzt Du? Bei den neueren Versionen kann man pro Tabelle und Klasse (Insert, Update, Delete) mehrere Trigger eintragen. Die werden dann mit einer etwas andern "add-syntax" hinzugefügt. Beschreibung
Bei den älteren Versionen musste man die unterschiedlichen Wirkungsfälle immer in je einem Trigger zusammenfassen.
Wenn man dann ein create Trigger
ausgeführt hat und es bestand schon einer, dann gab es einen Fehler. Den muss man selbstverständlich auch abfragen und auswerten.
Raketes Gedanke, sich erst einmal alle Trigger anzeigen zu lassen, ist daher nicht falsch. Aber bitte auch genau hinschauen, was drin steht.
meine Trigger:
CREATE TRIGGER kontrolle_insert AFTER INSERT ON table FOR EACH ROW BEGIN INSERT INTO kontrolle SET Art = 'INS', VorgangsID = NEW.VorgangsID, PostenID = NEW.PostenID, Erstelldatum = now(); END CREATE TRIGGER kontrolle_update AFTER UPDATE ON table FOR EACH ROW BEGIN INSERT INTO kontrolle SET Art = 'UP', VorgangsID = NEW.VorgangsID, PostenID = NEW.PostenID, Erstelldatum = now(); END CREATE TRIGGER kontrolle_delete BEFORE DELETE ON table FOR EACH ROW BEGIN INSERT INTO kontrolle SET Art = 'DEL', VorgangsID = OLD.VorgangsID, PostenID = OLD.PostenID, Erstelldatum = now(); END
In die Tabelle wird beim Löschen eines Artikels aber nicht DEL, sondern UP eingetragen. Insert und Update werden korrekt eingetragen, nur beim Löschen wird ein UP eingetragen anstelle eines DEL.
Ist zwar für meine Anwendung nicht schlimm (weils nur rein informativ ist), aber interessieren tuts mich trotzdem.Was läuft hier falsch?
Sven
Glück Auf
Tom vom Berg