【问题标题】:Getting SQLEXCEPTION message in procedures MySQL 5.5.x在程序 MySQL 5.5.x 中获取 SQLEXCEPTION 消息
【发布时间】:2014-09-22 13:58:41
【问题描述】:

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 可用。

【问题讨论】:

    标签: mysql exception-handling sqlexception


    【解决方案1】:

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

    bugs.mysql.com 和 MySQL 论坛上有很多条目询问此功能。 (比如这个:http://bugs.mysql.com/bug.php?id=11660

    我不知道你能不能升级你的 MySQL 实例,但据我所知,这是你唯一的机会。

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

    编辑

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

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

    对于特定状态,您可以声明单独的处理程序。这样,您可以知道状态,但您不知道任何其他详细信息。

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

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-08-31
    • 1970-01-01
    • 2018-03-11
    • 1970-01-01
    • 2019-04-22
    • 1970-01-01
    • 2020-01-20
    • 2021-03-01
    相关资源
    最近更新 更多