这是我第一次使用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)。触发器名称旁边有复选框,您可以使用这些复选框而不是编写自己的标题。
答案 0 :(得分:1)
DELIMITER
命令是一个客户端命令,并非所有客户端都支持它(它根本不会被发送到服务器,它只是指示客户端如何区分语句以便它们被发送到服务器正确)。 MySQL手册中对它的引用假设您使用的是“官方”MySQL客户端,例如mysql
命令行工具或MySQL Workbench(两者都支持DELIMITER
命令)。
我不知道如何更改Navicat中的语句分隔符,但这是你问题的根源。