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

DIAGNOSTICS で更新されたバージョンの MYSQL を使用できるようになるまで、これは実際には不可能のようです。基本的に私のものと同じこの質問を見つけました。まぁ。

于 2012-03-06T11:14:19.603 に答える