我構建了一個觸發器,用於在另一個表得到更新時更新表。但是,出於某種原因MySql不喜歡它裏面的if語句。以下if語句在MySql觸發器中出現了什麼問題
這種情況是,存在一個名爲Group的表,該表具有存儲在level1,level2和level3列中的級別標籤配置。另一個表(Membership)用其級別標題存儲成員配置。
例如,如果有一個成員有level1標題,新手,並且Group_configuration level1中有一個從'新手'更新爲'newbie'的更新,觸發器會將成員標題更新爲'newbie'。這也適用於level2和level3。
所以我的觸發代碼如下所示:
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'聲明? – 2014-09-30 12:51:41
不,這是問題 – ethereal1m 2014-09-30 18:20:13