DBAtlas · データベース運用アトラス

P0001: raise_exception

PostgreSQL

意味

PL/pgSQL の関数またはトリガーが RAISE EXCEPTION で意図的にエラーを発生させた。このエラーはデータベースエンジンではなく、利用者 (またはライブラリ) が記述した業務ルールのコードによって生成される。

原因

業務ロジックの検証が失敗した際に、開発者が RAISE EXCEPTION 'message' USING ERRCODE = ...; を呼び出した。例えば、トリガーが許可されない更新を阻止したり、整合性ルールを強制したりするためにカスタムエラーを発生させる。

対処方法

エラーメッセージと HINT/DETAIL フィールドが、関数が何を拒否したかを説明している。それに従って業務ルールを満たす。発生源を特定するには、該当する関数/トリガーのコード (RAISE 文) を調べる。特定の SQLSTATE が必要な場合は、汎用の P0001 ではなく RAISE ... USING ERRCODE で意味のあるコードを割り当て、アプリケーションが区別できるようにする。

DBAtlas で開く →

同じデータベースの他の項目