当条件未满足时,我想中止/退出/从存储过程返回。 我不知道该怎么做。谷歌搜索并没有帮助我很多,因为:'返回'/中止mySql存储过程
- 的MySQL版本,我们的服务器上为5.1(5.5 <,因此没有信号SQLSTATE)。
- 我不想把所有东西放在if..then..else语句(在我的情况下将有多层次的嵌套)
- 我不想调用an_invalid_procedure来引发异常。
是否有替代方案?
当条件未满足时,我想中止/退出/从存储过程返回。 我不知道该怎么做。谷歌搜索并没有帮助我很多,因为:'返回'/中止mySql存储过程
是否有替代方案?
我在这种情况下,做的是:
创建表称为errors
有一列包含文本错误信息,并在其上UNIQUE索引。我用我想支持的错误填充表格。
当我需要特定的错误提出时,我将错误消息插入到errors
表中。既然它已经在那里,我违反了一个UNIQUE键,所以会引发错误。在我的应用程序中,我可以看到MySQL错误#1062(这是'重复值的键...'错误的代码,并使用正则表达式来提取我的错误消息,以显示它给用户/登录/任何;
蹊跷....
...
BEGIN
<do stuff>
IF (<your condition>) THEN
<do more stuff>
END IF;
END$$
事情是我正在更新一些预先编写的存储过程,这个
TJ-:你不需要嵌套检查,在SP的开头有一个变量'@ success'设置为true,然后将它与所有检查一起使用,并在检查失败时将其设置为false。 – Mchl
是的,我没有想到,但是我可以通知调用代码发生了什么错误吗? –
好的。这也是一种选择。但是,我想这也是一个例外。我可以解析当我调用an_invalid_procedure时引发的异常。 –
除了引发错误之外,我无法在MySQL中停止/中止storepd过程/触发器<5.5 – Mchl
。然后,我会采用'raise and parse_exception'的方式。谢谢。 –