Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MySQL更新前使用PhpMyAdmin触发插入语法错误_Mysql_Triggers_Phpmyadmin - Fatal编程技术网

MySQL更新前使用PhpMyAdmin触发插入语法错误

MySQL更新前使用PhpMyAdmin触发插入语法错误,mysql,triggers,phpmyadmin,Mysql,Triggers,Phpmyadmin,我使用PHPMyAdmin的SQL窗口,使用$$的delim将该查询插入Mysql。我得到一个错误您的SQL语法有一个错误;查看与MySQL服务器版本对应的手册,以了解第5行“”附近要使用的正确语法 我相信这是显而易见的,我只是错过了它,但无论我怎么努力,我都无法让它发挥作用。这个错误一点帮助都没有,根据我的研究,我做的和我发现的4-5个例子一模一样 任何帮助都将不胜感激,谢谢 想想看,我问了之后就明白了 CREATE TRIGGER question_preserver BEFORE UPD

我使用PHPMyAdmin的SQL窗口,使用$$的delim将该查询插入Mysql。我得到一个错误
您的SQL语法有一个错误;查看与MySQL服务器版本对应的手册,以了解第5行“”附近要使用的正确语法

我相信这是显而易见的,我只是错过了它,但无论我怎么努力,我都无法让它发挥作用。这个错误一点帮助都没有,根据我的研究,我做的和我发现的4-5个例子一模一样


任何帮助都将不胜感激,谢谢

想想看,我问了之后就明白了

 CREATE TRIGGER question_preserver BEFORE UPDATE ON bank
 FOR EACH ROW
 BEGIN
 IF TRIM(NEW.question) != TRIM(OLD.question) THEN
 INSERT INTO bank_question_history (id,old_question) VALUES (OLD.id,OLD.question)$$
 END IF$$
 END$$

你必须使用
中断每个语句/命令和delim
$$
以结束整个触发器。

您自己找到了答案,做得很好。是的,分隔符用于触发器语句,而普通分隔符应用于触发器内的SQL
 CREATE TRIGGER question_preserver BEFORE UPDATE ON bank
 FOR EACH ROW
 BEGIN
 IF TRIM(NEW.question) != TRIM(OLD.question) THEN
 INSERT INTO bank_question_history (id,old_question) VALUES (OLD.`id`,OLD.`question`);
 END IF;
 END$$