MySql触发器内部的以下if语句有什么问题

ethereal1分钟

我正在构建一个触发器,当另一个表被更新时,该触发器将更新一个表。但是,由于某种原因,MySql不喜欢其中的if语句。

方案是,有一个名为Group的表,该表具有存储在level1,level2和level3列中的级别标签配置。另一个表“成员资格”存储成员配置及其级别标题。

例如,如果某个成员的标题为level1,并且是新手,并且Group_configuration级别1中的更新从“ novice”更新为“ newbie”,则触发器会将成员标题更新为“ newbie”。这也适用于级别2和级别3。

所以我的触发代码看起来像这样:

CREATE TRIGGER update_member_rank_label AFTER UPDATE ON `group`
FOR EACH ROW
begin
if (NEW.level1 <> OLD.level1 ) then
 UPDATE membership set level = NEW.level1 where level=OLD.level1 and gid=old.id;
else if  (NEW.level2 <> OLD.level2 ) then
 UPDATE membership set level = NEW.level2 where level=OLD.level2 and gid=old.id;
else if (NEW.level3 <> OLD.level3 ) then
 UPDATE membership set level = NEW.level3 where level=OLD.level3 and gid=old.id
end if;
end;

但我不断收到此错误:

#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 5 

有什么想法我想念的吗?

问候

奥利

请检查您是否将分隔符设置为以外的东西; 在实际创建触发器之前:

DELIMITER |
CREATE TRIGGER update_member_rank_label AFTER UPDATE ON `group`
FOR EACH ROW
begin
if (NEW.level1 <> OLD.level1 ) then
 UPDATE membership set level = NEW.level1 where level=OLD.level1 and gid=old.id;
else if  (NEW.level2 <> OLD.level2 ) then
 UPDATE membership set level = NEW.level2 where level=OLD.level2 and gid=old.id;
else if (NEW.level3 <> OLD.level3 ) then
 UPDATE membership set level = NEW.level3 where level=OLD.level3 and gid=old.id
end if;
end;

DELIMITER ;

也许有帮助吗?

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

这个查询触发器有什么问题?

来自分类Dev

以下MySQL create语句有什么问题?

来自分类Dev

SQL我不明白我的触发器有什么问题

来自分类Dev

这个触发器有什么问题(为了在 '' 附近使用正确的语法)

来自分类Dev

MySQL的触发器问题

来自分类Dev

以下具有 while 循环和 if 语句的 bash 语句有什么问题

来自分类Dev

为什么以下触发器在顶部需要三个类似的语句?

来自分类Dev

MySQL触发器与if语句和变量

来自分类Dev

MYSQL触发器中的CASE语句

来自分类Dev

以下FsCheck测试有什么问题

来自分类Dev

以下getInstance()方法有什么问题

来自分类Dev

以下c ++代码有什么问题?

来自分类Dev

以下查询有什么问题

来自分类Dev

以下代码有什么问题?

来自分类Dev

以下C ++类有什么问题?

来自分类Dev

以下代码有什么问题?

来自分类Dev

以下Make File有什么问题

来自分类Dev

以下Java代码有什么问题?

来自分类Dev

以下Scala代码有什么问题?

来自分类Dev

以下方法有什么问题?

来自分类Dev

以下while循环有什么问题?

来自分类Dev

我的 mysql 触发器有什么可怕的失败?

来自分类Dev

MySQL触发器插入问题

来自分类Dev

我的for / f语句有什么问题

来自分类Dev

if elif语句有什么问题

来自分类Dev

此SQL IF语句有什么问题?

来自分类Dev

else if语句有什么问题?

来自分类Dev

我的if语句有什么问题?

来自分类Dev

我的mapTo语句有什么问题