2012-03-06 8 views
0

これは単にthis questionを複製するだけではないと思っています。MYSQLハンドラを使用したログ

私はドキュメントを読みましたが、これを正しく使用する方法を完全に理解しているとは思いません。

私はストアドプロシージャにスローされたエラーをキャッチし、そのエラーをテーブルに記録したいと考えています。これは主に実験目的のためのものです。私は、エラーをキャッチして、コードとエラーをテーブルに記録する方法があるのだろうと思っています。

これまでのところ、エラーごとに異なるハンドラを宣言する必要があるようです。これは正しいか、すべてのエラーをキャッチしてコードとメッセージを取得する方法がありますか?私はハンドラ

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

可能これがやりたいのカップルを宣言していた各ストアドプロシージャの例については

ハンドラの負荷と手動で各コードを追加する?

正しい方向で私を指し示す助けを本当に感謝します。

答えて

0

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

関連する問題