php - 创建触发器 MYSQL PHPMyadmin 时出错

标签 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 

我不知道为什么。欢迎任何想法,谢谢。 另外请原谅我的英语水平不太好,我不是母语人士。

最佳答案

您必须在 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/

相关文章:

PHP获取http url并返回https url

php - 看看PHP中触发了什么变量的If语句?

php - MySQL PHP 加载数据到文件中

mysql - 查询错误MySQL

sql - 比较 Oracle SQL 中的两个空字符串

mysql - 创建一个表,表名中有空格

PHP短路懒人测评,php.net手册在哪?

php - 如何匹配正则表达式中的两个单词之一?

mysql - 当查询结果返回不匹配时需要显示替代文本

mysql - 将 Football Picks 与其他球员进行跨周比较