嗨,这是我在这里的第一个问题,所以如果您需要更多关于这个问题的信息,我可以在这里发布我的一些代码。
我试图通过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
我不知道为什么。欢迎任何想法,谢谢。 还原谅我的英语不太好,我不是母语。
答案 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
块中,也不需要分号来包含该语句