2011-02-09 3 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'트리거 인 경우 이전 행이 존재하지 않을 것입니다. –

답변

1

은이 줄에 단어 SET을 추가해야 댓글 작성자는 지적

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

또한,하는 BEFORE INSERT 트리거에는 OLD 값이 없습니다.