MySQL触发语法错误

时间:2013-02-04 09:22:27

标签: mysql triggers

我只是为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_nameDate,在user_contact表中,我有两列{{1 }& ID

现在,我想创建一个触发器,当一行将插入到forum_user表中时,会在user_contact表中插入一行,其中最近的值来自email& first_name

我在这段代码中做错了什么。 任何帮助都会很明显。

1 个答案:

答案 0 :(得分: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 ;