教程集 www.jiaochengji.com
教程集 >  数据库  >  mysql  >  正文 有关mysql触发器与存储过程if-else子句不能为空的问题

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

发布时间:2015-12-14   编辑:jiaochengji.com
本文介绍下,在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;

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

您可能感兴趣的文章:
有关mysql触发器与存储过程if-else子句不能为空的问题
分享:Mysql 5.0存储过程学习总结
mysql动态游标与mysql存储过程游标(示例)
有关mysql的存储过程与触发器的应用
详解mysql触发器的作用与mysql触发器的语法
MySQL 错误1418 的原因分析及解决方法
mysql 存储过程用法举例
MySQL触发器的基础知识分享
有关mysql存储过程和触发器的使用释疑
mysql存储过程实例教程

[关闭]
~ ~