'return'/ Abort mySql存储过程

时间:2011-07-29 12:36:31

标签: mysql exception stored-procedures

我想在不满足条件时从存储过程中止/退出/返回。 我不知道怎么做。谷歌搜索对我没有多大帮助,因为:

  • 我们服务器上的MySql版本是5.1(< 5.5,因此没有信号sqlstate)。
  • 我不想把所有内容都放在if..then..else语句中(在我的情况下会有多层嵌套)
  • 我不想调用an_invalid_procedure来引发异常。

有替代方案吗?

2 个答案:

答案 0 :(得分:1)

......出了点问题....

...
BEGIN
 <do stuff>
 IF (<your condition>) THEN
  <do more stuff>
 END IF;
END$$

答案 1 :(得分:0)

在这种情况下我做的是:

  1. 创建名为errors的表,其中一列包含文本错误消息和UNIQUE索引。我在表格中填写了我想要支持的错误。

  2. 当我需要引发特定错误时,我将错误消息插入errors表。由于它已经存在,我违反了一个UNIQUE键,因此引发了错误。在我的应用程序中,我可以观察MySQL错误#1062(这是'重复值为密钥...'错误的代码,并使用正则表达式提取我的错误消息以向用户显示/记录它/等等;

    < / LI>