您好,这是我的第一个问题,所以我只是在这里发布一些代码,如果您需要有关该问题的更多信息,请询问。
我正在尝试通过 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
我不知道为什么。欢迎任何想法,谢谢。 另外请原谅我的英语水平不太好,我不是母语人士。
最佳答案
您必须在 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
block 中,也不需要分号也可以对语句进行编码。
关于php - 创建触发器 MYSQL PHPMyadmin 时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25922922/