お仕事でPostgreSQLを使用することになりました。
利用しているPostgreSQL
- PostgreSQL 14.1
所感
PostgreSQL-FunctionのデバックでRAISEステートメントを利用していたところ、
設定するLevelによって挙動が違うことを学んだ42歳です。
RAISEステートメントのLEVELの挙動まとめ
PostgreSQLのRAISE
ステートメントで設定できるLEVELには様々なものがあり、それぞれに特定の用途がありました。
また、これらのレベルに応じて関数内の処理が停止するかどうかも異なります。
以下に表形式でこれらの情報をまとめました。
Level | 用途 | 処理の停止 |
---|---|---|
DEBUG | デバッグ情報の出力。開発者向けの詳細な情報提供に使用。 | いいえ |
LOG | 一般的なログ情報の出力。システムの動作記録に使用。 | いいえ |
INFO | 情報メッセージの出力。重要でない情報提供に使用。 | いいえ |
NOTICE | 注目すべき情報の出力。ユーザーに通知すべき情報に使用。 | いいえ |
WARNING | 警告メッセージの出力。問題が発生しうる状況に警告するため使用。 | いいえ |
EXCEPTION | エラーメッセージの出力。実行中の関数を停止させる。 | はい |
-
DEBUG
,LOG
,INFO
,NOTICE
,WARNING
は主に情報提供や警告のために使用され、関数の実行を停止しないようです。 - これらのメッセージはログに記録されることがありますが、関数自体の実行は続行されます。
-
EXCEPTION
はエラー状況を示し、これが発生すると関数の実行は直ちに停止し、エラーメッセージが発生元に伝播されます。
これらのレベルを適切に使用することで、関数の挙動をより細かく制御し、エラーハンドリングやデバッグを効果的に行うことができることを42歳は学びました。
また、これらのレベルの使用は、ログの管理やシステムの監視にも影響を与えることに注意が必要であることも42歳は学びました。