如何将SQL错误消息插入表中

时间:2012-04-02 09:05:30

标签: mysql transactions sqlexception

我想存储在另一个错误表中执行存储过程时发生的错误消息。 这是我的示例程序,有一些错误陈述。

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

    END $$
    DELIMITER $$;

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

2 个答案:

答案 0 :(得分:1)

在MySQL中处理此问题的标准方法是声明HANDLER以按您希望的方式处理错误条件。这允许您根据需要将错误消息插入另一个表中,然后根据需要向CONTINUEEXIT运行过程。

这是文档:

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

不幸的是,您将无法访问导致错误的语句的SQLSTATE,因此这种方法有些限制。

这是关于SO的另一个相关问题,更详细:

MySQL Stored Procedure Error Handling

答案 1 :(得分:0)

SQL ERROR 表示您的SQL查询有问题。它可能(或可能不)依赖于您的桌子。如果错误是 TABLE SPECIFIC QUERY SYNTAX ERROR ,也就是说,如果仅对特定表或查询有问题,那么您肯定可以插入错误到表中。但是,如果 CONNECTION 或其他内容存在问题,则无法在任何表格中插入错误。 始终尝试将错误记录在html文件或txt(文本)文件中,以便您可以顺利访问它。失败的可能性也更小。