Цель этого триггера - вставить старые данные в строке в таблицу, если обновленные данные в строке не равны текущим данным в строке.
delimiter //
CREATE TRIGGER history BEFORE UPDATE ON table1
FOR EACH ROW
BEGIN
IF NEW.salePrice <> OLD.salePrice THEN
INSERT INTO history_price (modelNumber,salePrice)
VALUES ('modelNumber','OLD.salePrice');
ELSEIF NEW.salePrice = OLD.salePrice THEN
SET NEW.salePrice = OLD.salePrice;
END IF;
END;//
delimiter ;
В общем, эта концепция должна работать, но вставка не работает. Это только вставка фактического текста, а не значений.
Более конкретно:
INSERT INTO history_price (modelNumber,salePrice)
VALUES
('modelNumber','OLD.salePrice');
Эта часть моего триггера буквально вставляет modelNumber и OLD.salePrice в мою таблицу истории, если обновленные значения не равны.
Что не так с этим запросом?