【问题标题】:MySQL before update trigger an insert syntax error using PhpMyAdmin更新前的 MySQL 使用 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 个示例一样。

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

【问题讨论】:

    标签: mysql triggers phpmyadmin


    【解决方案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
    猜你喜欢
    • 2014-07-21
    • 2014-08-22
    • 1970-01-01
    • 2017-07-21
    • 2019-11-15
    • 2013-11-06
    • 2016-12-19
    • 1970-01-01
    相关资源
    最近更新 更多