2013-02-04 3 views
0

나는 방금 MySQL 용 트리거를 만들었습니다. 하지만 아래 오류가 나타납니다.MySQL 트리거 구문 오류

ERROR 1064 (42000) : SQL 구문에 오류가 있습니다. 라인 1

에 가까운 'END'를 사용할 수있는 권리 구문 MySQL 서버 버전에 해당하는 설명서를 확인하는 것은 다음 트리거를 만들 수있는 내 코드입니다.

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 테이블에서 나는 ID, first_name, last_name, Date 같은 네 개의 열을 가지고 user_contact 테이블에 난 두 개의 열 ID & email 있습니다.

지금 여기에 한 행이 first_name & last_name에서 최근 값으로 forum_user 테이블에 삽입 할 때 user_contact 테이블에 행을 삽입합니다 트리거를 만들려고합니다.

이 코드에서 잘못된 것은 무엇입니까? 도움이 될 것입니다.

답변

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 ;