MySQL Trigger: Могу ли я использовать обновление? - PullRequest
1 голос
/ 10 июля 2011
CREATE TRIGGER history BEFORE UPDATE ON bestbuy

 FOR EACH ROW
 BEGIN
 IF NEW.salePrice <> OLD.salePrice THEN

 INSERT INTO history_price (modelNumber,salePrice)
        VALUES (OLD.modelNumber,OLD.salePrice);

        ELSEIF NEW.salePrice = OLD.salePrice THEN
            SET NEW.salePrice = OLD.salePrice;

    END IF;

 END

Мой вопрос: допустимо ли использовать

СОЗДАТЬ историю TRIGGER ДО ЗАМЕНИТЬ НА Bestbuy

1 Ответ

1 голос
/ 10 июля 2011

Нет, это не так - допустимы только события INSERT , UPDATE и DELETE .

Вы уверены, что обновляете данные с REPLACE? - вы можете изменить это, чтобы обновить его с помощью INSERT ... ON DUPLICATE KEY UPDATE - так ваш триггер будет работать

Редактировать для адресации комментариев

взгляните на INSERT ... ON DUPLICATE KEY UPDATE Синтаксис на сайте MySQL - это обычный INSERT с предложением - я также думаю, что он лучше, чем REPLACE, поскольку это не удаляет запись, чтобы вставить ее снова, она просто обновляет значения

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...