MySQL CREATE TRIGGER, синтаксическая ошибка.Что я делаю не так? - PullRequest
1 голос
/ 09 февраля 2011
 DELIMITER ||
CREATE TRIGGER `monthly_insert` BEFORE INSERT ON `history_monthly`
FOR EACH ROW
BEGIN
    NEW.`uid` = CONCAT(OLD.`year`, OLD.`month`, OLD.`charactersId`);
END;
||
DELIMITER ;

И он возвращает ошибку:

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '.`uid` = CONCAT(OLD.`year`, OLD.`month`, OLD.`charactersId`);
END' at line 4 

Я впервые с триггерами, и я изо всех сил пытался найти душевное равновесие, но мне не удалось; <</p>

1 Ответ

1 голос
/ 09 февраля 2011

Вам необходимо добавить слово SET в этой строке:

SET NEW.`uid` = CONCAT(OLD.`year`, OLD.`month`, OLD.`charactersId`);

Кроме того, как указал комментатор, в триггере BEFORE INSERT нет значения OLD.

...