2012-04-02 6 views
1

ストアドプロシージャの実行中に発生するエラーメッセージを別のエラーテーブルに保存します。 いくつかのエラーステートメントを持つサンプルの手順を次に示します。テーブルにSQLエラーメッセージを挿入する方法

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

    END $$ 
    DELIMITER $$; 

私は上記のプロシージャを呼び出すとき、それは私に「エラー」などの別の表に、このエラーコード&メッセージを格納するためのerror.I wnatを与えます。 すべてのポインタが評価されています。 ありがとうございました。

答えて

0

SQLエラーは、SQLクエリに問題があることを意味します。それはあなたのテーブルに依存するかもしれません。エラーがの場合は、特定のまたはのQUERY SYNTAX ERRORがあります。つまり、特定のテーブルのみに問題がある場合、またはクエリでエラーが発生した場合は、間違いなくテーブルにエラーを挿入できます。しかし、のCONNECTIONなどがある場合は、エラーを表に挿入することはできません。 いつもhtmlファイルまたはtxt(テキスト)ファイルにエラーを記録して、スムーズにアクセスできるようにしてください。また、失敗する機会も少なくなります。

0

これをMySQLで処理する標準的な方法は、エラー状態を処理するようにHANDLERを宣言することです。これにより、必要に応じて別のテーブルにエラーメッセージを挿入し、必要に応じて実行手順をCONTINUEまたはEXITにすることができます。

ここでのドキュメントです:

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

残念ながらあなたがエラーの原因となったステートメントのSQLSTATEにアクセスすることができなくなりますので、このアプローチはやや限られているが。

MySQL Stored Procedure Error Handling

ここではるかに詳細でSO上の別の関連する質問です

関連する問題