2013-02-04 194 views
0

我只是爲MySQL創建觸發器。但是我得到了下面的錯誤。MySQL觸發語法錯誤

錯誤1064(42000):您的SQL語法錯誤;檢查對應於你的MySQL服務器版本正確的語法 在1號線

使用附近「END」的 手冊下面是我的代碼來創建觸發器。

DROP TRIGGER IF EXISTS user_contact_after_insert; 
DELIMITER // 
CREATE TRIGGER `user_contact_after_insert` 
AFTER INSERT ON `forum_user` 
    FOR EACH ROW 
    BEGIN 
    INSERT INTO `user_contact` (email) VALUES (LCASE(NEW.FIRST_NAME NEW.LAST_NAME+'@gmail.com')); 
    END; 
DELIMETER ; 

在這裏,我有兩個表forum_user & user_contact。在forum_user表我有四個柱像IDfirst_namelast_nameDateuser_contact表我有兩列ID & email

現在在這裏,我想創建觸發器將在user_contact表中插入一行時,一行將從first_name & last_name插入forum_user表的最新值。

我在這段代碼中做了什麼錯誤。 任何幫助將是可觀的。

回答

2

改變DELIMITER和使用CONCAT

DROP TRIGGER IF EXISTS user_contact_after_insert; 

DELIMITER // 

CREATE TRIGGER `user_contact_after_insert` 
AFTER INSERT ON `forum_user` 
FOR EACH ROW 
BEGIN 
    INSERT INTO `user_contact` (email) 
    VALUES (LCASE(CONCAT(NEW.FIRST_NAME, NEW.LAST_NAME,'@gmail.com'))); 
END// --- <<=== HERE 

DELIMITER ;