2011-02-09 19 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を見つけようとする私の最善を尽くしましたが、私は失敗しました。あなたはこのラインで単語SETを追加する必要が<

+0

これが 'BEFORE INSERT'トリガーの場合は、必ず古い行はありませんか? –

答えて

1

:コメンターが指摘したように

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

また、BEFORE INSERTトリガーにはOLD値はありません。

関連する問題