Mam następujący MySQL TrigerGet starą wartość w MySQL wyzwalacz AFTER UPDATE
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;
ten nazywany jest także tworzyć TRIGGER Booking_AUPD
PO UPDATE ON Booking dla każdego wiersza
Problem mam to w jaki sposób Otrzymuję wartość pola OLD w wyzwalaczu PO AKTUALIZACJI?
Nie jest jasne, o co pytasz. Aby odwołać się do wartości kolumn, które były przed AKTUALIZACJĄ, w wyzwalaczu PO AKTUALIZACJI, odwołaj się do 'OLD.col_name', tak jak to robi przykładowy kod z odniesieniami do' OLD.LastChangedBy', 'OLD.BookingID' , et al. – spencer7593
Tak, dokładnie to. Aktualizuję pole BookingType i potrzebuję uzyskać wartość OLED BookingType w wyzwalaczu PO UPDATE. Czy to możliwe ? – Tommassiov
Tak, odniesienie do 'OLD.BookingType' w treści wyzwalacza zwróci wartość kolumny' BookingType' dla wiersza, tak jak przed wykonaniem instrukcji aktualizacji. Odwołanie znajduje się w klauzuli value instrukcji INSERT. (Nadal nie rozumiem, o co prosisz. Zauważmy, że INSERT zostanie wykonane tylko wtedy, gdy wartości NEW i OLD w kolumnie BookingId są różne.) – spencer7593