Vielleicht bin ich nur dicht, aber hoffentlich kann jemand helfen. Ich versuche, einen Trigger für eine DateCreated-Spalte hinzuzufügen, die ausgelöst wird, wenn eine Zeile hinzugefügt wird. Wenn ich hinzufügen versuche ich bekommenMySQL-Trigger funktioniert nicht auf Tabelle einfügen
aufgerufen verwendet wirdTabelle kann nicht ‚Produkte‘ in gespeicherten Funktionen/Trigger aktualisiert werden, da es bereits von der Anweisung, die diese gespeicherte Funktion/Trigger
ich von this answer realisieren das liegt daran, dass MySQL mich nach dem Einfügen wegen einer rekursiven Schleife nicht auslöst, aber mein Trigger hat das Update BEFORE und ich benutze NEW. Was verpasse ich meinen Auslöser? Außerdem, wenn ich ein DateModified machen wollte, was müsste ich ändern?
Trigger
CREATE TRIGGER `DateCreatedTriggerTS` BEFORE INSERT ON `products`
FOR EACH ROW UPDATE products SET DateEntered = NOW() WHERE ProductID = NEW.ProductID
Halten Sie einen Moment inne und fragen Sie sich: "Wo ist der Datensatzzeiger nach einer Aktualisierungsanweisung und wo muss er sein, um einen Insert-Trigger auszuführen", und Sie werden verstehen, warum Sie dies nicht tun können. Wenn das nicht hilft, fragen Sie sich: "Wie ist die Tabelle, die Zeile oder der Index für eine Einfügung gegen ein Update gesperrt?" TLDR: Sie können das nicht tun. Probieren Sie es mit einem AFTER-Trigger und Sie könnten damit durchkommen. –