2017-07-27 87 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'。然后尝试运行一些错误的命令。 –