2017-07-27 54 views
0

我有一個關於PostgreSQL中錯誤消息的問題。 我注意到,如果發生某些故障,PostgreSQL以文本消息的形式生成報告,但它不包含錯誤代碼ID。 例如:配置PostgreSQL錯誤消息

ERROR: Relation "mytable" already exists or 
ERROR: duplicate key value violates unique constraint "id" 

能否請您提出一個方法,讓PostgreSQL 包括本地錯誤代碼ID爲實例的消息如下:

42P07 ERROR: Relation "mytable" already exists or 
23505 ERROR: duplicate key value violates unique constraint "id" 

可能嗎?

在此先感謝。

+0

似乎已經跟進https://stackoverflow.com/q/45353684/398670 –

回答

2

您可以更改postgresql.conf文件中的參數log_error_verbosity以更改錯誤期間記錄的信息量。默認情況下,它的值是默認值。您可以將其更改爲詳細以包含有關錯誤的更多信息。

+0

感謝您的快速回復。 我更改了** log_error_verbosity **參數,發現pg_log目錄中日誌條目的格式已更改。現在這些消息包含PG錯誤代碼ID。 但是,當我在psql中運行一些錯誤的命令或嘗試通過** ODBC驅動程序** _SQLGetDiagRec()_調用獲取錯誤消息時,我仍然收到沒有原生Postgresql錯誤ID的錯誤消息。 你能否提出其他建議? –

+0

要在psql中獲取錯誤代碼,首先在psql提示符中使用'\ set VERBOSITY verbose'。然後嘗試運行一些錯誤的命令。 –