本節描述了可能出現在 ErrorResponse 和 NoticeResponse 訊息中的欄位。每種欄位型別都有一個單位元組的識別符號。請注意,任何給定的欄位型別在一個訊息中最多隻能出現一次。
S
Severity: 欄位內容為 ERROR
、FATAL
或 PANIC
(在錯誤訊息中),或 WARNING
、NOTICE
、DEBUG
、INFO
或 LOG
(在通知訊息中),或這些內容的本地化翻譯。始終存在。
V
Severity: 欄位內容為 ERROR
、FATAL
或 PANIC
(在錯誤訊息中),或 WARNING
、NOTICE
、DEBUG
、INFO
或 LOG
(在通知訊息中)。這與 S
欄位相同,只是內容永遠不會本地化。僅在 PostgreSQL 9.6 及更高版本生成的報文中出現。
C
Code: 錯誤的 SQLSTATE 程式碼(參見 附錄 A)。不可本地化。始終存在。
M
Message: 主要的、人類可讀的錯誤訊息。應該準確但簡潔(通常是一行)。始終存在。
D
Detail: 可選的次要錯誤訊息,提供有關問題的更多詳細資訊。可能有多行。
H
Hint: 可選的有關如何解決問題的建議。此欄位旨在與 Detail 不同,它提供建議(可能是不適用的)而不是事實。可能有多行。
P
Position: 欄位值為十進位制 ASCII 整數,指示錯誤遊標位置,作為原始查詢字串中的索引。第一個字元索引為 1,位置以字元而不是位元組為單位。
p
Internal position: 定義與 P
欄位相同,但當遊標位置指向內部生成的命令而不是客戶端提交的命令時使用。當此欄位出現時,q
欄位也總是出現。
q
Internal query: 失敗的內部生成命令的文字。例如,這可能是一個由 PL/pgSQL 函式發出的 SQL 查詢。
W
Where: 指示錯誤發生上下文的資訊。目前包括活動的過程語言函式和內部生成的查詢的呼叫堆疊跟蹤。跟蹤資訊每行一個條目,最近的先顯示。
s
Schema name: 如果錯誤與特定資料庫物件相關聯,則為該物件的模式名稱,如果存在的話。
t
Table name: 如果錯誤與特定表相關聯,則為該表的名稱。(有關表的模式名稱,請參閱模式名稱欄位。)
c
Column name: 如果錯誤與特定表列相關聯,則為該列的名稱。(有關標識表的模式和表名稱,請參閱模式和表名稱欄位。)
d
Data type name: 如果錯誤與特定資料型別相關聯,則為該資料型別的名稱。(有關資料型別模式名稱,請參閱模式名稱欄位。)
n
Constraint name: 如果錯誤與特定約束相關聯,則為該約束的名稱。有關關聯的表或域,請參閱上面列出的欄位。(在此目的下,索引被視為約束,即使它們不是用約束語法建立的。)
F
File: 報告錯誤的原始碼位置的檔名。
L
Line: 報告錯誤的原始碼位置的行號。
R
Routine: 報告錯誤的原始碼例程的名稱。
模式名稱、表名稱、列名稱、資料型別名稱和約束名稱的欄位僅為有限數量的錯誤型別提供;請參閱 附錄 A。前端不應假設任何欄位的存在保證了另一個欄位的存在。核心錯誤源會觀察到上述相互關係,但使用者定義的函式可能會以其他方式使用這些欄位。同樣,客戶端也不應假設這些欄位表示當前資料庫中的即時物件。
客戶端負責根據其需求格式化顯示的資訊;特別是,它應該根據需要斷開長行。錯誤訊息欄位中出現的換行符應被視為段落分隔符,而不是行分隔符。
如果您在文件中發現任何不正確、與您使用的特定功能不符或需要進一步闡明的內容,請使用 此表單 報告文件問題。