MySQL Trigger - Копировать строку из активной таблицы в таблицу архива - PullRequest
0 голосов
/ 26 марта 2012

У меня проблема с созданием триггера в базе данных для проекта

Я никогда раньше не использовал триггеры в MySQL, и когда я пытаюсь выполнить приведенный ниже код, он говорит, что есть ошибка в ''on line 4 ...

Вот код

CREATE TRIGGER archiveCar AFTER UPDATE ON mms_cars
 FOR EACH ROW BEGIN 
  IF NEW.active=2 THEN
   INSERT INTO mms_cars_sold SELECT * FROM mms_cars WHERE ad_id = OLD.ad_id;
   DELETE FROM mms_cars SELECT * FROM mms_cars WHERE ad_id = OLD.ad_id;
  END IF;
END;

Я не уверен, правильно ли я это создаю, поэтому прошу прощения за любые любительские ошибки.Моя цель состоит в том, чтобы скопировать информацию для строки из активной таблицы в таблицу архива, когда статус автомобиля был установлен на 2 (т. Е. Продано), чтобы максимизировать эффективность поиска по активной таблице

Надеюсь, кто-то может быть настолько любезен, чтобы помочь мне

С уважением

Барри

РЕДАКТИРОВАТЬ

У меня теперь есть следующие

DELIMITER //
CREATE TRIGGER archiveCar AFTER UPDATE ON mms_cars
FOR EACH ROW 
BEGIN 
 IF NEW.active=2 THEN
  INSERT INTO mms_cars_sold SELECT * FROM mms_cars WHERE ad_id=OLD.ad_id;
  DELETE FROM mms_cars WHERE ad_id=OLD.ad_id;
 END IF;
END //
DELIMITER;

Выдает эту ошибку:

1235 - Эта версия MySQL еще не поддерживает «несколько триггеров с одинаковым временем действия и событием для одной таблицы»

Ответы [ 2 ]

0 голосов
/ 06 апреля 2012

Вы должны попытаться сбросить триггер, прежде чем создавать новый.

DELIMITER //
DROP TRIGGER archiveCar;
CREATE TRIGGER archiveCar AFTER UPDATE ON mms_cars
...
DELIMITER;
0 голосов
/ 26 марта 2012

1235 - эта версия MySQL еще не поддерживает несколько триггеров с тем же временем действия и событием для одной таблицы '

Это означает, что уже есть триггер обновления для mms_cars.

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