我有以下的 MySQL 触发器
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;
这被称为CREATE TRIGGER Booking_AUPD
在Booking表上的AFTER UPDATE触发器,每行都会执行。
我遇到的问题是如何在AFTER UPDATE触发器中获取OLD字段的值?
OLD.LastChangedBy
、OLD.BookingID
等的引用一样,可以引用OLD.col_name
来引用它们更新前的值。 - spencer7593OLD.BookingType
的引用會返回在執行更新語句之前該行的BookingType
列的值。該引用位於 INSERT 語句的 values 子句中。(我仍然可能不理解您的問題。我們注意到只有在 BookingId 列的 NEW 和 OLD 值不同的情況下才會執行 INSERT。) - spencer7593