注意:我最初认为我的问题与CONCAT
有关,但由于确切的错误仍然存在,即使我完全从我的查询中删除了CONCAT
,我认为我应该完全覆盖原来的帖子。
我正在尝试设置触发器,并不断收到语法错误
我试过这个时
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
......我收到了这个错误:
1064 - 您的SQL语法出错;检查手册 对应于您的MySQL服务器版本,以便使用正确的语法 靠近''第6行
当尝试这个(没有IF
peren's)
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
...我得到 完全相同 错误
1064 - 您的SQL语法出错;检查手册 对应于您的MySQL服务器版本,以便使用正确的语法 靠近''第6行
是简单的......但我只是没有看到它
我在使用MySQL 5.1.36
我错过了什么?
有什么指针吗?
答案 0 :(得分:0)
试试这个:
CREATE TRIGGER set_aka_name
BEFORE INSERT ON sandbox_person
FOR EACH ROW
BEGIN
IF NEW.aka IS NULL THEN
NEW.aka = CONCAT(NEW.fname, ' ', NEW.lname);
END IF;
END
IF ()
功能和IF
声明(see this)
答案 1 :(得分:0)
首先尝试更改分隔符:
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的结束