使用MYSQL处理程序进行日志记录

时间:2012-03-06 10:35:23

标签: mysql stored-procedures handlers

我希望这不仅仅是重复this question

我已经阅读了文档,但我认为我还没有完全理解如何正确使用它。

我想捕获存储过程中抛出的错误并将这些错误记录在表中。这主要是出于实验目的。我想知道有没有办法捕获任何错误,然后将代码和错误记录到表。

到目前为止,看起来我必须为每个错误声明一个不同的处理程序。这是正确的还是有办法捕获所有错误并获取代码和消息。

例如,在每个存储过程中,我都声明了几个处理程序

DECLARE EXIT HANDLER FOR 1062
BEGIN
    SELECT 'Attempt to create a duplicate entry occurred';
END;
DECLARE EXIT HANDLER FOR SQLEXCEPTION
BEGIN
ROLLBACK;
SELECT 'Unexpected Error Ocurred';
END; 

而不是

 SELECT 'custom message'; 

我想做

INSERT INTO errorLogs(code, message);

这可以在不声明处理程序负载并手动添加每个代码的情况下实现吗?

非常感谢帮助我指明正确方向的任何帮助。

1 个答案:

答案 0 :(得分:0)

看起来这是不可能的,直到我可以使用更新版本的MYSQL和DIAGNOSTICS。我发现this question与我的基本相同。好吧。