代码之家  ›  专栏  ›  技术社区  ›  Sander Marechal

定义触发器时设置的MySQL语法错误

  •  0
  • Sander Marechal  · 技术社区  · 13 年前

    我不明白为什么这个触发器创建语法会失败:

    CREATE TRIGGER mytrigger BEFORE UPDATE ON mytable
    FOR EACH ROW
    BEGIN
        IF NEW.col1 = 0 AND NEW.col2 != '' AND NEW.col3 > 0 THEN
            SET NEW.col1 = NEW.col3 - (10 * 60);
        END IF;
    END;
    

    MySQL说,在SET语句前面/上面的第5行有语法错误。我使用的是MySQL 5.0.27。我看不出有什么不对,因为它和给出的例子几乎一样 in the manual 下降3/4秒。

    PS:我在PhpMyAdmin的SQL选项卡中输入这个。添加“delimiter”语句没有帮助。有线索吗?提前谢谢!

    1 回复  |  直到 13 年前
        1
  •  0
  •   Sander Marechal    13 年前

    我找到了。显然PhpMyAdmin在作为SQL查询的一部分输入时忽略MySQL的分隔符命令。相反,您需要在SQL查询下面的单独表单字段中设置分隔符。我完全错过了!