【问题标题】:How to insert the SQL Error message into table如何将 SQL 错误消息插入表中
【发布时间】:2012-04-15 22:40:05
【问题描述】:

我想将执行存储过程时发生的错误消息存储在另一个错误表中。 这是我的示例过程,其中包含一些错误语句。

    DELIMITER $$
    DROP PROCEDURE IF EXISTS `test`$$
    CREATE PROCEDURE `test`()
    BEGIN
        SELECT * FROM emp;

    END $$
    DELIMITER $$;

当我调用上述程序时,它给了我错误。我想将此错误代码和消息作为“错误”存储在另一个表中。 任何指针表示赞赏。 提前致谢。

【问题讨论】:

    标签: mysql transactions sqlexception


    【解决方案1】:

    SQL ERROR 表示您的 SQL 查询有问题。它可能(或可能不)取决于您的桌子。如果错误是 TABLE SPECIFICQUERY SYNTAX ERROR,也就是说,如果仅特定表或查询有问题,那么您绝对可以插入您的错误到表中。但是,如果您的 CONNECTION 或其他东西有问题,那么您不能将错误插入任何表。 总是尝试将您的错误记录在html 文件或txt(文本)文件中,以便您可以顺利访问它。失败的机会也更少。

    【讨论】:

      【解决方案2】:

      在 MySQL 中处理此问题的标准方法是声明 HANDLER 以按照您想要的方式处理错误情况。这使您可以根据需要将错误消息插入另一个表,然后根据需要将错误消息插入到CONTINUEEXIT 正在运行的过程中。

      这是文档:

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

      很遗憾,您将无法访问导致错误的语句的 SQLSTATE,因此这种方法有些受限。

      这是关于 SO 的另一个相关问题,其中包含更多详细信息:

      MySQL Stored Procedure Error Handling

      【讨论】:

        猜你喜欢
        • 2014-08-01
        • 2019-08-22
        • 2017-03-20
        • 1970-01-01
        • 2017-04-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多