mysql Trigger triggert falsch?
bearbeitet von TSHello,
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 `add` hinzugefügt.
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:
>
> ~~~ SQL
> 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
--
Es gibt soviel Sonne, nutzen wir sie.
[www.Solar-Harz.de](https://www.Solar-Harz.de)
S☼nnige Grüße aus dem Oberharz