0

我只是为 MySQL 创建一个触发器。但我收到以下错误。

ERROR 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表中,我有四列,如ID, first_name, last_nameDateuser_contact表中我有两列ID& email

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

我在这段代码中做错了什么吗?任何帮助都将是可观的。

4

1 回答 1

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 ;
于 2013-02-04T09:24:29.433 回答