更新前的 MySQL 使用 PhpMyAdmin 触发插入语法错误
Posted
技术标签:
【中文标题】更新前的 MySQL 使用 PhpMyAdmin 触发插入语法错误【英文标题】:MySQL before update trigger an insert syntax error using PhpMyAdmin 【发布时间】:2015-08-16 19:24:25 【问题描述】: 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$$
我使用 phpMyAdmin 的 SQL 窗口将该查询插入到 mysql 中,使用 $$ 的分隔符。我收到一个错误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 5
我确定这很明显,我只是想念它,但无论我尝试什么,我都无法让它发挥作用。该错误根本没有帮助,根据我的研究,我正在这样做,就像我发现的 4-5 个示例一样。
任何帮助将不胜感激,谢谢!
【问题讨论】:
【参考方案1】:想想我问完就知道了。
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以上是关于更新前的 MySQL 使用 PhpMyAdmin 触发插入语法错误的主要内容,如果未能解决你的问题,请参考以下文章
我有一个较旧的 .sql 文件(从 5.0.45 导出)我正在尝试通过 phpMyAdmin 导入更新版本的 MySQL。接收错误