如果出现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 可用。
答案 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 WARNINGS
和HANDLER
语句列出错误和警告,但不能将这些语句的结果插入表中。在处理程序内部,这些语句将给出空结果集。
对于特定状态,您可以声明各个处理程序。通过这种方式,您可以了解状态,但您不知道任何其他细节。
查看此文章:http://www.mysqltutorial.org/mysql-error-handling-in-stored-procedures/