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