有关mysql触发器与存储过程if-else子句不能为空的问题

发布时间:2020-01-14编辑:脚本学堂
本文介绍下,在mysql中,触发器或存储过程中if-else子句不能为空的问题,有需要的朋友,参考下吧。

mysql中这样写会报错:
[Err] 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 'end
if' at line 8

存储过程,如下:
 

复制代码 代码示例:
create procedure test(in a int) 
if a > 1 then 
  select 1; 
elseif a>2 then 
  select 2; 
else 
 
end if; 

修改成以下这样,就可以了:
 

复制代码 代码示例:
create procedure test(in a int) 
if a > 1 then 
  select 1; 
elseif a>2 then 
  select 2; 
else 
-- do nothing -- 
set @tmp=1; 
end if;

下在的存储过程,多做了一步判断,什么也不做,避免了子句为空时报错。