ALT-Wert in der MySQL-Trigger NACH der Update-Anweisung

Habe ich den folgenden MySQL-Trigger

SET @iUserId = OLD.LastChangedBy; 

IF NOT NEW.LastChangedBy <=> OLD.LastChangedBy THEN
    SET @iUserId = NEW.LastChangedBy;
END IF;

IF NOT NEW.BookingId<=> OLD.BookingId THEN
    INSERT INTO AuditTrail VALUES (UUID(),@iUserId,'UPDATE','Booking', OLD.BookingId,'BookingType ',OLD.BookingType ,NEW.BookingType ,NOW());
END IF;

Dieser heißt CREATE TRIGGER Booking_AUPD NACH dem UPDATE bei der Buchung FÜR JEDE ZEILE

Das problem das ich habe ist, wie bekomme ich den ALTEN Feldwert in einen AFTER UPDATE-trigger ?

Es ist nicht klar, was Sie Fragen. Die Werte der Spalten, wie Sie vor einem UPDATE, in der AFTER UPDATE-trigger, Referenz OLD.col_name, so wie dein Beispiel-code ist wie mit den verweisen zu OLD.LastChangedBy, OLD.BookingID, et al.
Ja genau das. Ich update das Feld BookingType, und ich brauche, um den ALTEN Wert von BookingType in der AFTER UPDATE-Trigger. Ist das möglich ?
Ja, der Verweis auf OLD.BookingType in Ihrem Körper auslösen, wird der Wert der BookingType Spalte für die Zeile, wie es war, bevor die update-Anweisung ausgeführt wurde. Diese Bezugnahme ist in der values-Klausel der INSERT-Anweisung. (Ich muss noch nicht verstehen, was Sie gefragt haben. Wir beachten Sie, dass INSERT nur ausgeführt werden, wenn die NEUEN und ALTEN Werte der BookingId Spalte unterschiedlich sind.)
Ja, das ist, was ich versucht habe aber bei Anwendung der Trigger bekomme ich "Es gibt keine ALTEN Zeile im on INSERT-trigger"
wenn du die eigentliche Fehlermeldung, die zurückgegeben wird, und vorsehen, dass in der Frage, das wird gehen ein lange Wege zu zerstreuen Mehrdeutigkeit und helfen, Sie bekommen eine Antwort auf Ihre Frage.

InformationsquelleAutor neildt | 2013-07-16

Schreibe einen Kommentar