添加MySQL触发器:(对我而言)不可见语法错误 [英] Adding MySQL Trigger: invisible (to me) Syntax Error
问题描述
注意:
我最初认为我的问题与 CONCAT
有关,但是由于确切的错误仍然存在,即使我完全从查询中删除了 CONCAT
,我认为我应该完全覆盖我的原始帖子。
NOTE:
I initially thought my problem had to do with CONCAT
, but since the exact error persisted even when I completely eliminated CONCAT
from my query, I figured I should completely over-write of my original post.
我正在尝试设置触发器,并不断出现语法错误。
当我尝试此操作
I'm trying to set a trigger, and keep getting a Syntax Error.
When I tried this
CREATE TRIGGER set_aka_name
BEFORE INSERT ON sandbox_person
FOR EACH ROW
BEGIN
IF (NEW.aka IS NULL) THEN
SET NEW.aka = 'test value';
END IF;
END
...我收到此错误:
...I got this error:
1064-您的SQL语法有错误;检查手册
对应于您的MySQL服务器版本,以获取正确的语法以在第6行的''附近使用
1064 - 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 6
并且尝试 this 时(没有 IF
佩伦的)
CREATE TRIGGER set_aka_name
BEFORE INSERT ON sandbox_person
FOR EACH ROW
BEGIN
IF NEW.aka IS NULL THEN
SET NEW.aka = 'test value';
END IF;
END
...我得到 相同的 错误
...I get the same exact error
1064-您的SQL语法有错误;检查手册
对应于您的MySQL服务器版本,以获取正确的语法以在第6行的''附近使用
1064 - 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 6
简单来说就是 got ...但是我只是没有看到它。
我在MySQL 5.1.36上.br
我缺少什么?
任何指针吗?
It's got to be something simple ... but I'm just not seeing it.
I'm on MySQL 5.1.36.
What am I missing?
Any pointers?
推荐答案
尝试首先更改定界符:
DELIMITER |
CREATE TRIGGER set_aka_name
BEFORE INSERT ON sandbox_person
FOR EACH ROW
BEGIN
IF NEW.aka IS NULL THEN
SET NEW.aka = 'test value';
END IF;
END|
DELIMITER ;
也许MySQL看到第一个;作为CREATE TRIGGER的结尾
Maybe MySQL sees the first ";" as the end of CREATE TRIGGER
这篇关于添加MySQL触发器:(对我而言)不可见语法错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!