PostgreSQLデータベースエラーコードの説明
PostgreSQLサーバからの全てのメッセージには、SQLの"SQLSTATE"コード規約に従った5文字のエラーコードが付与されています。どのようなエラー状態が発生したかを知る必要があるアプリケーションは、通常、テキストによるエラーメッセージを見るのではなく、エラーコードをテストする必要があります。これらのエラーコードはPostgreSQLのバージョン更新で簡単に変更されることはありませんし、エラーメッセージが地域化されても一般的に変更されることはありません。 PostgreSQLが生成するエラーコードの全てではありませんが、いくつかは標準SQLで定義されていることに注意してください。標準SQLで定義されていないいくつかのエラー状態は、私たちが考案したもの、もしくは他のデータベースから借用したものです。
規格では、エラーコードの最初の2文字がエラーのカテゴリーを示し、最後の3文字がそのカテゴリー内の具体的な状態を示している。そのため、特定のエラーコードを認識できないアプリケーションでも、エラーカテゴリーから何をすべきかを推測することができます。
表A-1にPostgreSQL 8.1で定義されている全てのエラーコードの一覧を示します。(いくつかは現時点では実際に使用されませんが、標準SQLで定義されています)。また、エラーカテゴリもここにリストアップされています。各エラーカテゴリには、最後の3文字が000のquot;standard"エラーコードがあります。
PL/pgSQLが各エラーコードに対して使用する条件名は、空白をアンダースコアに置き換える以外は、表に表示されている文言と同じです。例えば、コード22012「DIVISION BY ZERO」は、DIVISION_BY_ZEROという条件名を持っており、これは大文字でも小文字でも書くことができます。(PL/pgSQLは警告(エラーの反対)と条件名を認識しませんので、これらのカテゴリは00、01、02です)。
"""
Database return code
"""
{
# 00 class Successful completion
'00000': 'SUCCESSFUL COMPLETION',
# 01 class Warning
'01000': 'WARNING',
'0100C': 'Dynamic results (DYNAMIC RESULT SETS RETURNED) were returned',
'01008': 'WARNING, implicitly completing zero bits (IMPLICIT ZERO BIT PADDING)',
'01003': 'Null value eliminated in set function (NULL VALUE ELIMINATED IN SET FUNCTION)',
'01007': 'Permission not granted (PRIVILEGE NOT GRANTED)',
'01006': 'Privilege not revoked (PRIVILEGE NOT REVOKED)',
'01004': 'STRING DATA RIGHT TRUNCATION',
'01P01': 'DEPRECATED FEATURE',
# 02 class No data - this is also a warning class as required by the SQL standard
'02000': 'NO DATA',
'02001': 'NO ADDITIONAL DYNAMIC RESULT SETS RETURNED was returned',
# 03 class SQL statement is not finished
'03000': 'SQL STATEMENT NOT YET COMPLETE',
# 08 class Connection exception
'08000': 'CONNECTION EXCEPTION',
'08003': 'Connection does not exist (CONNECTION DOES NOT EXIST)',
'08006': 'Connection failed (CONNECTION FAILURE)',
'08001': 'SQL client cannot establish SQL connection (SQLCLIENT UNABLE TO ESTABLISH SQLCONNECTION)',
'08004': 'SQL SERVER REJECTED ESTABLISHMENT OF SQLCONNECTION',
'08007': 'TRANSACTION RESOLUTION UNKNOWN',
'08P01': 'PROTOCOL VIOLATION',
# 09 class Trigger action listed
'09000': 'TRIGGERED ACTION EXCEPTION',
# 0A class Unsupported feature
'0A000': 'FEATURE NOT SUPPORTED',
# 0B class Illegal transaction initialization
'0B000': 'INVALID TRANSACTION INITIATION',
# 0F class Indicator exception
'0F000': 'LOCATOR EXCEPTION',
'0F001': 'INVALID LOCATOR SPECIFICATION',
# 0L class Illegal assignor
'0L000': 'INVALID GRANTOR',
'0LP01': 'INVALID GRANT OPERATION',
# 0P class Illegal role declaration
'0P000': 'INVALID ROLE SPECIFICATION',
# 21 class Potential violation
'21000': 'Potential violation (CARDINALITY VIOLATION)',
# 22 class Data exception
'22000': 'DATA EXCEPTION',
'2202E': 'ARRAY SUBSCRIPT ERROR',
'22021': 'CHARACTER NOT IN PREPARED RANGE (CHARACTER NOT IN REPERTOIRE)',
'22008': 'Date Time Field Overflow (DATETIME FIELD OVERFLOW)',
'22012': 'Divide by zero (DIVISION BY ZERO)',
'22005': 'ERROR IN ASSIGNMENT',
'2200B': 'ESCAPE CHARACTER CONFLICT',
'22022': 'INDICATOR OVERFLOW',
'22015': 'internal field overflow (INTERVAL FIELD OVERFLOW)',
'2201E': 'INVALID ARGUMENT FOR LOGARITHM',
'2201F': 'Illegal parameter for exponential function (INVALID ARGUMENT FOR POWER FUNCTION)',
'2201G': 'INVALID ARGUMENT FOR WIDTH BUCKET FUNCTION', '2201F': 'INVALID ARGUMENT FOR WIDTH BUCKET FUNCTION', '2201G': 'INVALID ARGUMENT FOR WIDTH BUCKET FUNCTION',
'22018': 'Illegal character value for type conversion (INVALID CHARACTER VALUE FOR CAST)',
'22007': 'Illegal datetime format (INVALID DATETIME FORMAT)',
'22019': 'Illegal escape character (INVALID ESCAPE CHARACTER)',
'2200D': 'illegal escape byte (INVALID ESCAPE OCTET)',
'22025': 'Illegal escape sequence (INVALID ESCAPE SEQUENCE)',
'22P06': 'NONSTANDARD USE OF ESCAPE CHARACTER',
'22010': 'INVALID INDICATOR PARAMETER VALUE',
'22020': 'INVALID LIMIT VALUE',
'22023': 'INVALID PARAMETER VALUE',
'2201B': 'Illegal regular expression (INVALID REGULAR EXPRESSION)',
'22
'25P01': 'No active SQL transaction (NO ACTIVE SQL TRANSACTION)',
'25P02': 'In failed SQL transaction (IN FAILED SQL TRANSACTION)',
# 26 class illegal SQL statement name
'26000': 'INVALID SQL STATEMENT NAME',
# 27 Class Triggered data change violation
'27000': 'TRIGGERED DATA CHANGE VIOLATION',
# 28 class Illegal authorization statement
'28000': 'INVALID AUTHORIZATION SPECIFICATION',
# 2B class Dependent priority descriptor still exists
'2B000': 'DEPENDENT PRIVILEGE DESCRIPTORS STILL EXIST',
'2BP01': 'Dependent object still exists (DEPENDENT OBJECTS STILL EXIST)',
# 2D class Illegal transaction termination
'2D000': 'INVALID TRANSACTION TERMINATION',
# 2F class SQL procedure exception
'2F000': 'SQL ROUTINE EXCEPTION',
'2F005': 'Function executed without return statement (FUNCTION EXECUTED NO RETURN STATEMENT)',
'2F002': 'Modifying SQL data is not allowed (MODIFYING SQL DATA NOT PERMITTED)',
'2F003': 'Attempting to use forbidden SQL statement (PROHIBITED SQL STATEMENT ATTEMPTED)',
'2F004': 'READING SQL DATA NOT PERMITTED',
# 34 class illegal cursor name
'34000': 'INVALID CURSOR NAME',
# 38 class External procedure exception
'38000': 'EXTERNAL ROUTINE EXCEPTION',
'38001': 'CONTAINING SQL NOT PERMITTED',
'38002': 'MODIFYING SQL DATA NOT PERMITTED',
'38003': 'Attempting to use prohibited SQL statement (PROHIBITED SQL STATEMENT ATTEMPTED)',
'38004': 'READING SQL DATA NOT PERMITTED',
# 39 class External procedure call exception
'39000': 'EXTERNAL ROUTINE INVOCATION EXCEPTION',
'39001': 'An illegal SQLSTATE was returned (INVALID SQLSTATE RETURNED)',
'39004': 'NULL VALUE NOT ALLOWED',
'39P01': 'TRIGGER PROTOCOL VIOLATED',
'39P02': 'SRF PROTOCOL VIOLATED',
# 3B class Save point exception
'3B000': 'SAVEPOINT EXCEPTION',
'3B001': 'INVALID SAVEPOINT SPECIFICATION',
# 3D class Illegal database name
'3D000': 'Illegal database name (INVALID CATALOG NAME)',
# 3F class Illegal schema name
'3F000': 'Illegal schema name (INVALID SCHEMA NAME)',
# 40 class transaction rollback
'40000': 'TRANSACTION ROLLBACK',
'40002': 'TRANSACTION INTEGRITY CONSTRAINT VIOLATION',
'40001': 'Serialization failure (SERIALIZATION FAILURE)',
'40003': 'Don't know if statement is finished (STATEMENT COMPLETION UNKNOWN)',
'40P01': 'DEADLOCK DETECTED',
# 42 class Syntax error or access rule violation
'42000': 'Syntax error or access violation (SYNTAX ERROR OR ACCESS RULE VIOLATION)',
'42601': 'Syntax error (SYNTAX ERROR)',
'42501': 'Insufficient privileges (INSUFFICIENT PRIVILEGE)',
'42846': 'Unable to perform type conversion (CANNOT COERCE)',
'42803': 'Grouping error (GROUPING ERROR)',
'42830': 'Illegal foreign key (INVALID FOREIGN KEY)',
'42602': 'Illegal name (INVALID NAME)',
'42622': 'Name is too long (NAME TOO LONG)',
'42939': 'RESERVED NAME',
'42804': 'Data type mismatch (DATATYPE MISMATCH)',
'42P18': 'Pending data type (INDETERMINATE DATATYPE)',
'42809': 'Incorrect object type (WRONG OBJECT TYPE)',
'42703': 'Undefined field (UNDEFINED COLUMN)',
'42883': 'Undefined function (UNDEFINED FUNCTION)',
'42P01': 'UNDEFINED TABLE',
'42P02': 'undefined parameter (UNDEFINED PARAMETER)',
'42704': 'Undefined object (UNDEFINED OBJECT)',
'42701': 'Duplicate field (DUPLICATE COLUMN)',
'42P03': 'Duplicate cursor (DUPLICATE CURSOR)',
'42P04': 'Duplicate database (DUPLICATE DATABASE))',
'42723': 'Duplicate function (DUPLICATE FUNCTION)',
'42P05': 'DUPLICATE PREPARED STATEMENT', '42P05': 'DUPLICATE PREPARED STATEMENT',
'42P06': 'DUPLICATE SCHEMA',
'42P07': 'DUPLICATE TABLE',
'42712': 'Duplicate Alias (DUPLICATE ALIAS)',
'42710': 'Duplicate object (DUPLICATE OBJECT)',
'42702': 'Ambiguous field (AMBIGUOUS COLUMN)',
'42725': 'fuzzy function (AMBIGUOUS FUNCTION)',
'42P08': 'fuzzy parameter (AMBIGUOUS PARAMETER)',
'42P09': 'Fuzzy alias (AMBIGUOUS ALIAS)',
'42P10': 'ILLEGAL FIELD REFERENCE (INVALID COLUMN REFERENCE)',
'42611': 'illegal field definition (INVALID COLUMN DEFINITION)',
'42P11': 'Illegal cursor definition (INVALID CURSOR DEFINITION)',
'42P12': 'Illegal database definition (INVALID DATABASE DEFINITION)',
'42P13': 'Illegal function definition
関連
-
[解決済み】PostgreSQL。クエリに結果データの保存先がない
-
[解決済み】csvファイルをpostgresqlにインポートしようとすると、「予想される最後の列の後に余分なデータがある」。
-
[解決済み] PostgreSQLの命名規則
-
[解決済み] pg_restore の実行時に "[archiver] unsupported version (1.13) in file header" が表示される。
-
[解決済み] カラムのNULL値がNOT-NULL制約に違反する PostgreSQL
-
[解決済み] FATAL ERROR ロックファイル "postmaster.pid" がすでに存在する
-
[解決済み] ERROR: 読み取り専用トランザクションで CREATE TABLE を実行できません。
-
[解決済み] コマンドを実行すると、"no relations found "と表示されるのですが。
-
[解決済み] Postgres のデータベース削除エラー: pq: 現在開いているデータベースを削除できません。
-
[解決済み] 私のシステムでpostgresを実行することができません。postgres is not in the sudoers file.と表示されます。この件は報告されます` [closed].
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] Postgres のデータベース削除エラー: pq: 現在開いているデータベースを削除できません。
-
[解決済み] PostgreSQLを使用するRailsでエラー 'fe_sendauth: no password supplied' を解決するにはどうすればよいですか?
-
[解決済み] psql: FATAL: データベース "<user>" が存在しない
-
[解決済み] SequelizeConnectionRefusedError: ECONNREFUSED 127.0.0.1:5432 を接続し、docker を使用して sequelize を使用する場合。
-
[解決済み] 特定のテーブルを除いてpostgres dbをダンプする方法は?
-
[解決済み] postgresql - 整数が範囲外です。
-
[解決済み] PostgreSQL ERROR: INSERT は式よりも多くのターゲット・カラムを持ちますが、そうではありません。
-
[解決済み] アプリでSSLを有効にしていない場合、AzureのPostgresサーバーへの接続に失敗するのはなぜですか?
-
[解決済み] pgadmin4 : postgresql アプリケーションサーバーに接続できませんでした。
-
PostgreSQL学習パート5 - ローカルpsqlのパスワードの有無の設定