创建触发器MYSQL PHPMyadmin时出错

时间:2014-09-18 21:47:08

标签: php mysql sql

嗨,这是我在这里的第一个问题,所以如果您需要更多关于这个问题的信息,我可以在这里发布我的一些代码。

我试图通过PHPMyadmin创建一个触发器是MYSQL(是的,我不知道最好的工具)。 我们的想法是能够在执行插入查询之前清理字符串。很简单。

我的代码:

CREATE TRIGGER `CLEAR` BEFORE INSERT ON `TABLE` 
FOR EACH ROW BEGIN
    SET NEW.LNAME = REPLACE(NEW.LNAME,'?','');
END;

但是我不断收到此错误消息

#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 '' at line 3 

我不知道为什么。欢迎任何想法,谢谢。 还原谅我的英语不太好,我不是母语。

1 个答案:

答案 0 :(得分:0)

你必须在CREATE语句之前更改DELIMITER并在之后重新设置它:

DELIMITER |
CREATE TRIGGER `CLEAR` BEFORE INSERT ON `TABLE` 
FOR EACH ROW BEGIN
    SET NEW.LNAME = REPLACE(NEW.LNAME,'?','');
END |
DELIMITER ;

否则你可以编写你的触发器,因此它不需要分隔符:

CREATE TRIGGER `CLEAR` BEFORE INSERT ON `TABLE` 
FOR EACH ROW
    SET NEW.LNAME = REPLACE(NEW.LNAME,'?','')

因为在触发器主体中只执行了一个语句,所以不必将其括在BEGIN ... END块中,也不需要分号来包含该语句