MySQL ストアドプロシージャの例外処理はどのように処理されていますか?
MySQLストアドプロシージャは、次のように例外処理を行うことができます。
- DECLARE文で例外変数を宣言し、HANDLER文で例外処理を行う。例:
DECLARE exit HANDLER FOR sqlexception
BEGIN
-- 处理异常的代码
...
END;
- 例外処理ではTRY…CATCHブロックを使います。TRYブロック内でコードを実行し、例外が発生した場合にCATCHブロックに飛びます。例:
BEGIN
-- 执行代码
...
END TRY
BEGIN CATCH
-- 处理异常的代码
...
END CATCH;
- RESIGNALステートメントを使用して例外を再スローする。
DECLARE exit HANDLER FOR sqlexception
BEGIN
-- 处理异常的代码
...
RESIGNAL;
END;
これらの方法は、実際に必要に応じて選択して使用していくことができます。ただし、異常処理の具体的な文法は、MySQL のバージョンなどによって若干異なる場合があります。MySQL の公式ドキュメントにある異常処理の解説を参照してください。