0

我希望这不仅仅是重复这个问题

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

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

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

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

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);

如果不声明大量处理程序并手动添加每个代码,这是否可能?

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

4

1 回答 1

0

在我可以将更新版本的 MYSQL 与 DIAGNOSTICS 一起使用之前,这似乎是不可能的。我发现这个问题与我的基本相同。呃,好吧。

于 2012-03-06T11:14:19.603 回答