Ho il seguente MySQL triggerottenere il valore OLD in MySQL trigger dopo l'aggiornamento Dichiarazione
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;
Questo è chiamato come CREATE TRIGGER Booking_AUPD
DOPO L'AGGIORNAMENTO SU PRENOTAZIONE PER OGNI FILA
Il problema che ho è come può Ottengo il valore del campo OLD in un trigger AFTER UPDATE?
Non è chiaro cosa stai chiedendo. Per fare riferimento ai valori delle colonne come erano prima di un UPDATE, all'interno del trigger AFTER UPDATE, fare riferimento a 'OLD.col_name', proprio come avviene per il codice di esempio con i riferimenti a' OLD.LastChangedBy', 'OLD.BookingID' , et al. – spencer7593
Sì esattamente quello. Aggiorno il campo BookingType e ho bisogno di ottenere il valore OLD di BookingType nel trigger AFTER UPDATE. È possibile ? – Tommassiov
Sì, il riferimento a 'OLD.BookingType' nel corpo del trigger restituirà il valore della colonna' BookingType' per la riga come era prima dell'esecuzione dell'istruzione update. Tale riferimento è nella clausola dei valori dell'istruzione INSERT. (Non riesco ancora a capire cosa stai chiedendo.Si nota che INSERT verrà eseguito solo se i valori NEW e OLD della colonna BookingId sono diversi.) – spencer7593