在程序MySQL 5.5.x中获取SQLEXCEPTION消息

时间:2014-07-30 19:15:25

标签: mysql exception-handling sqlexception

如果出现SQLEXCEPTION,如何在 MySQL 5.5 存储过程中获取错误文本?

我需要沿着这些方向看看出了什么问题:

DECLARE EXIT HANDLER FOR SQLEXCEPTION    
BEGIN
    GET DIAGNOSTICS CONDITION 1
    SELECT "Table @p5 (Msg State @p2): @p1"
END;

Getting SQLEXCEPTION message in MySQL procedures类似,但版本为5.6.4 - 因此 GET DIAGNOSTICS 可用。

1 个答案:

答案 0 :(得分:7)

据我所知,在较低版本的MySQL(低于5.6.4)中无法模拟或替换GET DIAGNOSTICS的功能。

bugs.mysql.com和MySQL论坛上有很多条目会询问此功能。 (Lke this one:http://bugs.mysql.com/bug.php?id=11660

我不知道您是否可以升级您的MySQL实例,但据我所知,这是您唯一的机会。

我发现(可能你也发现了一些)与此相关的一些问题,但所有问题都是在谈论5.6.4版或者没有答案:

修改

如果可以,请在客户端应用程序中处理MySQL错误。

您可以使用SHOW ERRORS之外的SHOW WARNINGSHANDLER语句列出错误和警告,但不能将这些语句的结果插入表中。在处理程序内部,这些语句将给出空结果集。

对于特定状态,您可以声明各个处理程序。通过这种方式,您可以了解状态,但您不知道任何其他细节。

查看此文章:http://www.mysqltutorial.org/mysql-error-handling-in-stored-procedures/