MySQL Trigger-- Не вставляются правильные значения - PullRequest
0 голосов
/ 17 июня 2011

Цель этого триггера - вставить старые данные в строке в таблицу, если обновленные данные в строке не равны текущим данным в строке.

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 в мою таблицу истории, если обновленные значения не равны.

Что не так с этим запросом?

Ответы [ 2 ]

2 голосов
/ 17 июня 2011

modelNumber и OLD.salePrice, вероятно, не должны быть в одинарных кавычках.

1 голос
/ 17 июня 2011

Попробуйте изменить его на

insert into history_price (old.ModelNumber,old.salePrice)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...