PostgreSQL 資料庫錯誤狀態編號解釋[附帶列表

來源:互聯網
上載者:User

標籤:des   style   color   使用   os   io   strong   檔案   

PostgreSQL 伺服器發出的所有訊息都賦予了五個字元的錯誤碼, 這些代碼遵循 SQL 的 "SQLSTATE" 代碼的習慣。需要知道發生了什麼錯誤條件的應用通常應該測試錯誤碼,而不是查看文本錯誤資訊。這些錯誤 代碼輕易不會隨著 PostgreSQL 的版本更新而修改,並且一般也不會隨著錯誤資訊的本地化而發生修改。 請注意有些,但不是全部,PostgreSQL 產生的錯誤碼是由 SQL 標準定義的; 有些標準沒有定義的錯誤條件是我們發明的或者是從其它資料庫借來的。

根據標準,錯誤碼的頭兩個字元表示錯誤類別,而後三個字元表示在該類別內特定的條件。 因此,那些不能識別特定錯誤碼的應用仍然可以從錯誤類別中推斷要做什麼。

Table A-1 裡面列出了 PostgreSQL 8.1 定義的所有錯誤碼。(有些實際上目前並沒有使用,但是 SQL 標準定義了。)錯誤類別也列出在此。對於每個錯誤類別都有個"標準"的錯誤碼,它的最後三個字元是 000。這個代碼只用於那些落在該類別內, 但是沒有賦予任何更準確的代碼的錯誤條件。

PL/pgSQL 用於每個錯誤碼的條件名和表中顯示的措辭相同,只是用底線代替了空白。比如,代碼 22012,DIVISION BY ZERO,它的條件名是 DIVISION_BY_ZERO。條件名可以用大寫或者小寫來寫都可以。(請注意 PL/pgSQL 並不識別警告,這一點和錯誤,條件名正相反;那些類別是 00,01,和 02。)

代碼 含義 
00 類 成功完成 
00000 成功完成(SUCCESSFUL COMPLETION) 
01 類 警告 
01000 警告(WARNING) 
0100C 返回了動態結果(DYNAMIC RESULT SETS RETURNED) 
01008 警告,隱含補齊了零位元位(IMPLICIT ZERO BIT PADDING) 
01003 在集合函數裡消除了空值(NULL VALUE ELIMINATED IN SET FUNCTION) 
01007 沒有賦予許可權(PRIVILEGE NOT GRANTED) 
01006 沒有撤銷許可權(PRIVILEGE NOT REVOKED) 
01004 字串資料在右端截斷(STRING DATA RIGHT TRUNCATION) 
01P01 廢棄的特性(DEPRECATED FEATURE) 
02 類 沒有資料 — 按照 SQL 標準的要求,這也是警告類 
02000 沒有資料(NO DATA) 
02001 返回了沒有附加動態結果集(NO ADDITIONAL DYNAMIC RESULT SETS RETURNED) 
03 類 SQL 陳述式尚未結束 
03000 SQL 陳述式尚未結束(SQL STATEMENT NOT YET COMPLETE) 
08 類 串連例外 
08000 串連例外(CONNECTION EXCEPTION) 
08003 串連不存在(CONNECTION DOES NOT EXIST) 
08006 串連失敗(CONNECTION FAILURE) 
08001 SQL 用戶端不能建立 SQL 串連(SQLCLIENT UNABLE TO ESTABLISH SQLCONNECTION) 
08004 SQL 伺服器拒絕建立 SQL 串連(SQLSERVER REJECTED ESTABLISHMENT OF SQLCONNECTION) 
08007 未知的事務解析(TRANSACTION RESOLUTION UNKNOWN) 
08P01 違反協議(PROTOCOL VIOLATION) 
09 類 觸發器動作列外 
09000 觸發的動作例外(TRIGGERED ACTION EXCEPTION) 
0A 類 不支援特性 
0A000 不支援此特性(FEATURE NOT SUPPORTED) 
0B 類 非法事務初始化 
0B000 非法事務初始化(INVALID TRANSACTION INITIATION) 
0F 類 指標例外 
0F000 指標例外(LOCATOR EXCEPTION) 
0F001 非法的定位器聲明(INVALID LOCATOR SPECIFICATION) 
0L 類 非法賦權人 
0L000 非法賦權人(INVALID GRANTOR) 
0LP01 非法賦權操作(INVALID GRANT OPERATION) 
0P 類 非法角色聲明 
0P000 非法角色聲明(INVALID ROLE SPECIFICATION) 
21 類 勢違反 
21000 勢違反(CARDINALITY VIOLATION) 
22 類 資料例外 
22000 資料例外(DATA EXCEPTION) 
2202E 數組下標錯誤(ARRAY SUBSCRIPT ERROR) 
22021 字元不在準備好的範圍內(CHARACTER NOT IN REPERTOIRE) 
22008 日期時間欄位溢出(DATETIME FIELD OVERFLOW) 
22012 被零除(DIVISION BY ZERO) 
22005 賦值中出錯(ERROR IN ASSIGNMENT) 
2200B 逃逸字元衝突(ESCAPE CHARACTER CONFLICT) 
22022 指標溢出(INDICATOR OVERFLOW) 
22015 內部欄位溢出(INTERVAL FIELD OVERFLOW) 
2201E 對數運算的非法參數(INVALID ARGUMENT FOR LOGARITHM) 
2201F 指數函數的非法參數(INVALID ARGUMENT FOR POWER FUNCTION) 
2201G 寬桶函數的非法參數(INVALID ARGUMENT FOR WIDTH BUCKET FUNCTION) 
22018 類型轉換時非法的字元值(INVALID CHARACTER VALUE FOR CAST) 
22007 非法日期時間格式(INVALID DATETIME FORMAT) 
22019 非法的逃逸字元(INVALID ESCAPE CHARACTER) 
2200D 非法的逃逸位元組(INVALID ESCAPE OCTET) 
22025 非法逃逸序列(INVALID ESCAPE SEQUENCE) 
22P06 非標準使用逃逸字元(NONSTANDARD USE OF ESCAPE CHARACTER) 
22010 非法指標參數值(INVALID INDICATOR PARAMETER VALUE) 
22020 非法限制值(INVALID LIMIT VALUE) 
22023 非法參數值(INVALID PARAMETER VALUE) 
2201B 非法Regex(INVALID REGULAR EXPRESSION) 
22009 非法時區顯示值(INVALID TIME ZONE DISPLACEMENT VALUE) 
2200C 非法使用逃逸字元(INVALID USE OF ESCAPE CHARACTER) 
2200G 最相互關聯類型不匹配(MOST SPECIFIC TYPE MISMATCH) 
22004 不允許 NULL 值(NULL VALUE NOT ALLOWED) 
22002 NULL 值不能做指標參數(NULL VALUE NO INDICATOR PARAMETER) 
22003 數字值超出範圍(NUMERIC VALUE OUT OF RANGE) 
22026 字串資料長度不匹配(STRING DATA LENGTH MISMATCH) 
22001 字串資料右邊被截斷(STRING DATA RIGHT TRUNCATION) 
22011 抽取子字串錯誤(SUBSTRING ERROR) 
22027 截斷錯誤(TRIM ERROR) 
22024 未結束的 C 字串(UNTERMINATED C STRING) 
2200F 零長度的字串(ZERO LENGTH CHARACTER STRING) 
22P01 浮點例外(FLOATING POINT EXCEPTION) 
22P02 非法文本表現形式(INVALID TEXT REPRESENTATION) 
22P03 非法二進位表現形式(INVALID BINARY REPRESENTATION) 
22P04 錯誤的 COPY 格式(BAD COPY FILE FORMAT) 
22P05 不可翻譯字元(UNTRANSLATABLE CHARACTER) 
23 類 違反完整性條件約束 
23000 違反完整性條件約束(INTEGRITY CONSTRAINT VIOLATION) 
23001 違反限制(RESTRICT VIOLATION) 
23502 違反非空(NOT NULL VIOLATION) 
23503 違反外鍵約束(FOREIGN KEY VIOLATION) 
23505 違反唯一約束(UNIQUE VIOLATION) 
23514 違反檢查(CHECK VIOLATION) 
24 類 非法遊標狀態 
24000 非法遊標狀態(INVALID CURSOR STATE) 
25 類 非法事務狀態 
25000 非法事務狀態(INVALID TRANSACTION STATE) 
25001 活躍的 SQL 狀態(ACTIVE SQL TRANSACTION) 
25002 分支事務已經啟用(BRANCH TRANSACTION ALREADY ACTIVE) 
25008 持有的遊標要求同樣的隔離等級(HELD CURSOR REQUIRES SAME ISOLATION LEVEL) 
25003 對分支事務的不恰當的訪問方式(INAPPROPRIATE ACCESS MODE FOR BRANCH TRANSACTION) 
25004 對分支事務的不恰當的隔離等級(INAPPROPRIATE ISOLATION LEVEL FOR BRANCH TRANSACTION) 
25005 分支事務沒有活躍的 SQL 事務(NO ACTIVE SQL TRANSACTION FOR BRANCH TRANSACTION) 
25006 唯讀 SQL 事務(READ ONLY SQL TRANSACTION) 
25007 不支援混和的模式和資料語句(SCHEMA AND DATA STATEMENT MIXING NOT SUPPORTED) 
25P01 沒有活躍的 SQL 事務(NO ACTIVE SQL TRANSACTION) 
25P02 在失敗的 SQL 事務中(IN FAILED SQL TRANSACTION) 
26 類 非法 SQL 陳述式名 
26000 非法 SQL 陳述式名(INVALID SQL STATEMENT NAME) 
27 類 觸發的資料改變違規 
27000 觸發的資料改變違規(TRIGGERED DATA CHANGE VIOLATION) 
28 類 非法授權聲明 
28000 非法授權聲明(INVALID AUTHORIZATION SPECIFICATION) 
2B 類 依然存在依賴的優先順序描述符 
2B000 依然存在依賴的優先順序描述符(DEPENDENT PRIVILEGE DESCRIPTORS STILL EXIST) 
2BP01 依賴性對象仍然存在(DEPENDENT OBJECTS STILL EXIST) 
2D 類 非法的事務終止 
2D000 非法的事務終止(INVALID TRANSACTION TERMINATION) 
2F 類 SQL 過程例外 
2F000 SQL 過程例外(SQL ROUTINE EXCEPTION) 
2F005 執行的函數沒有返回語句(FUNCTION EXECUTED NO RETURN STATEMENT) 
2F002 不允許修改 SQL 資料(MODIFYING SQL DATA NOT PERMITTED) 
2F003 企圖使用禁止的 SQL 陳述式(PROHIBITED SQL STATEMENT ATTEMPTED) 
2F004 不允許讀取 SQL 資料(READING SQL DATA NOT PERMITTED) 
34 類 非法遊標名 
34000 非法遊標名(INVALID CURSOR NAME) 
38 類 外部過程例外 
38000 外部過程例外(EXTERNAL ROUTINE EXCEPTION) 
38001 不允許包含的 SQL (CONTAINING SQL NOT PERMITTED) 
38002 不允許修改 SQL 資料(MODIFYING SQL DATA NOT PERMITTED) 
38003 企圖使用禁止的 SQL 陳述式(PROHIBITED SQL STATEMENT ATTEMPTED) 
38004 不允許讀取 SQL 資料(READING SQL DATA NOT PERMITTED) 
39 類 外部程序呼叫例外 
39000 外部程序呼叫例外(EXTERNAL ROUTINE INVOCATION EXCEPTION) 
39001 返回了非法的 SQLSTATE(INVALID SQLSTATE RETURNED) 
39004 不允許空值(NULL VALUE NOT ALLOWED) 
39P01 違反觸發器協議(TRIGGER PROTOCOL VIOLATED) 
39P02 違反SRF協議(SRF PROTOCOL VIOLATED) 
3B 類 儲存點例外 
3B000 儲存點例外(SAVEPOINT EXCEPTION) 
3B001 無效的儲存點聲明(INVALID SAVEPOINT SPECIFICATION) 
3D 類 非法資料庫名 
3D000 非法資料庫名(INVALID CATALOG NAME) 
3F 類 非法模式名 
3F000 非法模式名(INVALID SCHEMA NAME) 
40 類 交易回復 
40000 交易回復(TRANSACTION ROLLBACK) 
40002 違反事務完整性條件約束(TRANSACTION INTEGRITY CONSTRAINT VIOLATION) 
40001 序列化失敗(SERIALIZATION FAILURE) 
40003 不知道語句是否結束(STATEMENT COMPLETION UNKNOWN) 
40P01 偵測到死結(DEADLOCK DETECTED) 
42 類 語法錯誤或者違反訪問規則 
42000 語法錯誤或者違反訪問規則(SYNTAX ERROR OR ACCESS RULE VIOLATION) 
42601 語法錯誤(SYNTAX ERROR) 
42501 許可權不夠(INSUFFICIENT PRIVILEGE) 
42846 無法進行類型轉換(CANNOT COERCE) 
42803 分組錯誤(GROUPING ERROR) 
42830 非法的外鍵(INVALID FOREIGN KEY) 
42602 非法名字(INVALID NAME) 
42622 名字太長(NAME TOO LONG) 
42939 保留名字(RESERVED NAME) 
42804 資料類型不匹配(DATATYPE MISMATCH) 
42P18 未決的資料類型(INDETERMINATE DATATYPE) 
42809 錯誤的物件類型(WRONG OBJECT TYPE) 
42703 未定義的欄位(UNDEFINED COLUMN) 
42883 未定義的函數(UNDEFINED FUNCTION) 
42P01 未定義的表(UNDEFINED TABLE) 
42P02 未定義的參數(UNDEFINED PARAMETER) 
42704 未定義對象(UNDEFINED OBJECT) 
42701 重複的欄位(DUPLICATE COLUMN) 
42P03 重複的遊標(DUPLICATE CURSOR) 
42P04 重複的資料庫(DUPLICATE DATABASE)) 
42723 重複的函數(DUPLICATE FUNCTION) 
42P05 重複的準備好語句(DUPLICATE PREPARED STATEMENT) 
42P06 重複的模式(DUPLICATE SCHEMA) 
42P07 重複的表(DUPLICATE TABLE) 
42712 重複的別名(DUPLICATE ALIAS) 
42710 重複的對象(DUPLICATE OBJECT) 
42702 模糊的欄位(AMBIGUOUS COLUMN) 
42725 模糊的函數(AMBIGUOUS FUNCTION) 
42P08 模糊的參數(AMBIGUOUS PARAMETER) 
42P09 模糊的別名(AMBIGUOUS ALIAS) 
42P10 非法欄位引用(INVALID COLUMN REFERENCE) 
42611 非法欄位定義(INVALID COLUMN DEFINITION) 
42P11 非法遊標定義(INVALID CURSOR DEFINITION) 
42P12 非法的資料庫定義(INVALID DATABASE DEFINITION) 
42P13 非法函數定義(INVALID FUNCTION DEFINITION) 
42P14 非法準備好語句定義(INVALID PREPARED STATEMENT DEFINITION) 
42P15 非法模式定義(INVALID SCHEMA DEFINITION) 
42P16 非法表定義(INVALID TABLE DEFINITION) 
42P17 非法對象定義(INVALID OBJECT DEFINITION) 
44 類 違反 WITH CHECK 選項 
44000 違反 WITH CHECK 選項(WITH CHECK OPTION VIOLATION) 
53 類 資源不夠 
53000 資源不夠(INSUFFICIENT RESOURCES) 
53100 磁碟滿(DISK FULL) 
53200 記憶體耗盡(OUT OF MEMORY) 
53300 太多串連(TOO MANY CONNECTIONS) 
54 類 超過程式限制 
54000 超過程式限制(PROGRAM LIMIT EXCEEDED) 
54001 語句太複雜(STATEMENT TOO COMPLEX) 
54011 太多欄位(TOO MANY COLUMNS) 
54023 參數太多(TOO MANY ARGUMENTS) 
55 類 對象不在預先要求的狀態 
55000 對象不在預先要求的狀態(OBJECT NOT IN PREREQUISITE STATE) 
55006 對象在使用中(OBJECT IN USE) 
55P02 無法修改運行時參數(CANT CHANGE RUNTIME PARAM) 
55P03 鎖不可獲得(LOCK NOT AVAILABLE) 
57 類 操作者幹涉 
57000 操作者幹涉(OPERATOR INTERVENTION) 
57014 查詢被取消(QUERY CANCELED) 
57P01 管理員關機(ADMIN SHUTDOWN) 
57P02 崩潰關機(CRASH SHUTDOWN) 
57P03 現在無法串連(CANNOT CONNECT NOW) 
58 類 系統錯誤( PostgreSQL 自己內部的錯誤) 
58030 IO 錯誤(IO ERROR) 
58P01 未定義的檔案(UNDEFINED FILE) 
58P02 重複的檔案(DUPLICATE FILE) 
F0 類 設定檔錯誤 
F0000 設定檔錯誤(CONFIG FILE ERROR) 
F0001 鎖檔案存在(LOCK FILE EXISTS) 
P0 類 PL/pgSQL 錯誤 
P0000 PLPGSQL 錯誤(PLPGSQL ERROR) 
P0001 拋出例外(RAISE EXCEPTION) 
XX 類 內部錯誤 
XX000 內部錯誤(INTERNAL ERROR) 
XX001 資料損毀(DATA CORRUPTED) 
XX002 索引損壞(INDEX CORRUPTED)

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.