为什么mysql workbench 8.0抛出错误,尽管所有“ if”都已正确关闭,但未关闭if?

时间:2019-05-23 13:01:01

标签: mysql

尽管我的过程代码具有正确的“ if”(即正确打开和关闭的“ if”),但是mysql workbench 8.0抛出一个错误,指出所有“ if”均未正确关闭。我也找不到其他错误。请帮帮我。

如果我最后添加了额外的“ if”,则错误消失了。但这是不正确的,因为那些“ end if”没有任何if以便可以关闭。尽管它没有显示任何错误,但在应用带有附加“ end if”的过程时却没有被应用而是引发其他错误。

IF(Ser ='search') THEN

        IF(Value = 0) THEN

            IF EXISTS(SELECT Role FROM U WHERE Name = name) THEN

                IF(O = 0) THEN

                    IF(F1 <> NULL AND F1V <> NULL AND 
                        F2 = NULL AND F2V = NULL
                        ) THEN


                        IF EXISTS (SELECT * FROM Com ) THEN

                            SET V=0;

                        END IF;

                    ELSE IF (F1<> NULL AND F1V <> NULL AND 
                            F2 <> NULL AND F2V <> NULL
                            ) THEN

                        IF EXISTS ( SELECT * FROM Com ) THEN

                                                        SET V=1;

                        END IF;

                    END IF;

                ELSE IF(O = 1) THEN

                                SET A=0;

                     END IF;

        END IF;
    END IF;
END IF;

2 个答案:

答案 0 :(得分:0)

  if var='search' then 
      if var=0 then 
         if exists(select statement) then 

         end if; 
      elseif var=1 then 
         if exists(select statement) then 

         end if; 
      end if; 
  end if; 

根据mysql文档,问题在于if语句与if函数不同。尝试不带括号使用。

Mysql IF Syntax

答案 1 :(得分:0)

我将else if条件更改为if并开始工作。