如何在MySQL 5.5中的存储过程中获取异常消息

时间:2012-09-06 10:48:35

标签: mysql stored-procedures exception-handling

我正在使用MySQL 5.5。在MySQL 5.6上获取异常消息正在使用GET DIAGNOSTIC函数。 MySQL 5.5中是否有类似的功能。?
我正在使用的项目已经使用MySQL 5.5版。

1 个答案:

答案 0 :(得分:4)

您可以尝试使用SHOW ERRORSHOW WARNING。要查看上一个错误或警告,您可以将其用作:

SHOW ERRORS LIMIT 1   -- for SQL-state > 2
SHOW WARNINGS LIMIT 1 -- for SQL-state 1,2

为了防止列出每个错误,您可以处理一类SQL错误,如下所示:

  

SQLWARNING是开始的SQLSTATE值类的简写   与' 01'。

     

NOT FOUND是开始的SQLSTATE值类的简写   与' 02'。这仅在游标的上下文中是相关的   用于控制光标到达数据末尾时发生的情况   组。如果没有更多行可用,则会出现No Data条件   SQLSTATE值02000.要检测此情况,可以设置a   它的处理程序(或NOT FOUND条件)。一个例子如图所示   第12.7.5节“游标”。 SELECT也会出现这种情况......   INTO var_list语句,不检索任何行。

     

SQLEXCEPTION是没有的SQLSTATE值类的简写   从' 00',' 01'或' 02'开始。

因此,要处理异常,您只需执行以下操作:

DECLARE EXIT HANDLER FOR SQLSTATE SQLEXCEPTION .....;

<强>链接:

http://dev.mysql.com/doc/refman/5.5/en/signal.html

http://dev.mysql.com/doc/refman/5.0/en/declare-handler.html