2016-10-21 4 views
0

ストアドプロシージャの存在や誤ったパラメータの数などのエラーを処理することは可能ですか?ストアドプロシージャを誤って使用するためのSQLEXCEPTIONハンドラ

私は見ての通り、怒鳴るようなハンドラは、このようなエラーをキャッチしません:(

CREATE PROCEDURE _tmp_proc(
) 
BEGIN 
    DECLARE EXIT HANDLER FOR SQLEXCEPTION 
    BEGIN 
     IF IFNULL(@LOG_LEVEL, 1) < 2 THEN 
      ROLLBACK; 
     END IF; 

     SELECT 'An error has occurred'; 
     RESIGNAL; 
    END; 

    CALL inexisted_proc(); 
END 

答えて

1

は、ストアドプロシージャ の不存在とのparamsの間違った番号のようなエラーを処理することが可能ですか?

はい、あなたは呼び出し側のサイトではなく、プロシージャ内で処理する必要があります。呼び出し側のサイトでは、ストアドプロシージャを呼び出すアプリケーションの終了を意味するので、PHPを使用している場合は、errまたは処理機構try .. catch構造体およびcatchブロックでは、例外を記録するか、必要に応じて実行します。

+0

ありがとうございます!しかし、私はMySQLの内部の方法を探しています。 – zhekaus

関連する問題