2011-02-09 38 views
1
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 ; 

并返回一个错误:MySQL CREATE TRIGGER,语法错误。我做错了什么?

#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 

这是我第一次用触发器和我尽我所能,试图找到soultion但我失败了; <

+0

如果这是一个`BEFORE INSERT`触发器,肯定不会有旧行? – 2011-02-09 18:37:23

回答

1

您需要添加这一行字SET

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

此外,作为评论者指出的那样,有一个BEFORE INSERT触发没有OLD值。