触发器mysql中的错误1064

时间:2012-05-21 18:35:50

标签: mysql

这是我第一次使用mysql,我正在努力学习如何使用触发器。

我使用navicat,我去桌面设计,然后去触发器选项卡。我创建了一个名为testing的触发器,在定义中我输入了:

delimiter |
  CREATE TRIGGER lpr.mytesting AFTER INSERT ON lpr.lpr_opt_upload 
    FOR EACH ROW BEGIN
      set new.lpr_text := reverse(new.lpr_text);
    END;
| delimiter ;

所有要做的就是每当插入新内容时,我都会反转lpr_text字段中的文本。但是,我得到“1064 - 你的SQL中有一个错误;请检查与你的MySql服务器版本对应的手册,以获得正确的语法,然后在第1行插入lpr_op'之前,在每个行上创建触发器测试。 “我不明白我做错了什么,我只是复制一个触发器示例。

// --------------------------------------------- ---------------------------- //

我弄明白了这个问题。我正在使用navicat并在navicat触发器选项卡中,您只需将主体键入定义,而不是标题(例如:CREATE TRIGGER lpr.mytesting后插入lpr.lpr_opt_upload)。触发器名称旁边有复选框,您可以使用这些复选框而不是编写自己的标题。

1 个答案:

答案 0 :(得分:1)

DELIMITER命令是一个客户端命令,并非所有客户端都支持它(它根本不会被发送到服务器,它只是指示客户端如何区分语句以便它们被发送到服务器正确)。 MySQL手册中对它的引用假设您使用的是“官方”MySQL客户端,例如mysql命令行工具或MySQL Workbench(两者都支持DELIMITER命令)。

我不知道如何更改Navicat中的语句分隔符,但这是你问题的根源。