支援的版本:最新 (17) / 16 / 15 / 14 / 13
開發版本:devel
不再支援的版本:12 / 11 / 10 / 9.6 / 9.5 / 9.4 / 9.3 / 9.2 / 9.1 / 9.0 / 8.4 / 8.3 / 8.2 / 8.1 / 8.0 / 7.4

53.8. 錯誤和通知訊息欄位 #

本節描述可能出現在 ErrorResponse 和 NoticeResponse 訊息中的欄位。每種欄位類型都有一個單一位元組的識別符記號。請注意,任何給定的欄位類型在每個訊息中最多出現一次。

S

嚴重性:欄位內容為 ERRORFATALPANIC(在錯誤訊息中),或 WARNINGNOTICEDEBUGINFOLOG(在通知訊息中),或是這些詞彙的本地化翻譯。始終存在。

V

嚴重性:欄位內容為 ERRORFATALPANIC(在錯誤訊息中),或 WARNINGNOTICEDEBUGINFOLOG(在通知訊息中)。這與 S 欄位相同,除了內容永遠不會本地化。僅在 PostgreSQL 9.6 及更高版本產生的訊息中出現。

C

代碼:錯誤的 SQLSTATE 代碼(請參閱附錄 A)。不可本地化。始終存在。

M

訊息:主要的人工可讀錯誤訊息。這應該是準確但簡潔的(通常是一行)。始終存在。

D

詳細資訊:一個可選的次要錯誤訊息,帶有關於問題的更多細節。可能會有多行。

H

提示:關於如何處理問題的可選建議。這旨在與「詳細資訊」不同,因為它提供建議(可能不適當)而不是確鑿的事實。可能會有多行。

P

位置:欄位值是一個十進制 ASCII 整數,表示一個錯誤游標位置,作為原始查詢字串的索引。第一個字符的索引為 1,並且位置以字符而不是字節來衡量。

p

內部位置:這與 P 欄位的定義相同,但當游標位置引用內部生成的命令而不是客戶端提交的命令時使用。q 欄位將始終在此欄位出現時出現。

q

內部查詢:失敗的內部生成命令的文本。例如,這可能是 PL/pgSQL 函數發出的 SQL 查詢。

W

位置:錯誤發生的上下文指示。目前,這包括活動程序語言函數和內部生成的查詢的呼叫堆疊追蹤。追蹤是每行一個條目,最近的在最前面。

s

綱要名稱:如果錯誤與特定的資料庫物件相關聯,則包含該物件的綱要的名稱(如果有的話)。

t

表格名稱:如果錯誤與特定的表格相關聯,則該表格的名稱。(參閱綱要名稱欄位以了解表格的綱要名稱。)

c

欄位名稱:如果錯誤與特定的表格欄位相關聯,則該欄位的名稱。(參閱綱要和表格名稱欄位以識別表格。)

d

資料類型名稱:如果錯誤與特定的資料類型相關聯,則該資料類型的名稱。(參閱綱要名稱欄位以了解資料類型的綱要名稱。)

n

約束名稱:如果錯誤與特定的約束相關聯,則該約束的名稱。參閱上面列出的欄位以了解相關的表格或網域。(就此而言,索引被視為約束,即使它們不是使用約束語法建立的。)

F

檔案:報告錯誤的原始碼位置的檔案名稱。

L

Line(行號):錯誤回報的原始碼位置的行號。

R

Routine(常式):回報錯誤的原始碼常式的名稱。

Note(注意)

schema name(綱要名稱)、table name(表格名稱)、column name(欄位名稱)、data type name(資料類型名稱)和 constraint name(約束名稱)等欄位僅針對有限數量的錯誤類型提供;請參閱附錄 A。 前端不應假定任何這些欄位的存在,就保證另一個欄位的存在。 核心錯誤來源遵循上述相互關係,但是使用者定義函數可能會以其他方式使用這些欄位。 同樣地,客戶端不應假設這些欄位表示目前資料庫中的現有物件。

客戶端負責格式化顯示的資訊以滿足其需求;特別是,它應根據需要斷開長行。 錯誤訊息欄位中出現的換行符應被視為段落分隔符,而不是換行符。

提交更正

如果您在文件中發現任何不正確、與您對特定功能的體驗不符或需要進一步澄清的地方,請使用此表格來報告文件問題。