Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Postgresql 如何获取唯一_约束冲突的列名?_Postgresql_Go_Pq - Fatal编程技术网

Postgresql 如何获取唯一_约束冲突的列名?

Postgresql 如何获取唯一_约束冲突的列名?,postgresql,go,pq,Postgresql,Go,Pq,我正在使用pq驱动程序,我想知道当我遇到唯一的约束冲突时,为什么pq.Error会给出一个空列 我可以解析详细信息,但有什么原因导致列为空?如果我能直接从列获取电子邮件,而不是解析细节 下面是错误的样子: Severity:"ERROR" Code:"23505" Message:"duplicate key value violates unique constraint "unique_users"" Detail:"Key (email)=(user3@email.com) already

我正在使用pq驱动程序,我想知道当我遇到唯一的约束冲突时,为什么pq.Error会给出一个空列

我可以解析
详细信息
,但有什么原因导致
为空?如果我能直接从
获取
电子邮件
,而不是解析
细节

下面是错误的样子:

Severity:"ERROR"
Code:"23505"
Message:"duplicate key value violates unique constraint "unique_users""
Detail:"Key (email)=(user3@email.com) already exists."
Hint:""
Position:""
InternalPosition:""
InternalQuery:""
Where:""
Schema:"public"
Table:"users"
Column:""
DataTypeName:""
Constraint:"unique_users"
File:"nbtinsert.c"
Line:"534"
Routine:"_bt_check_unique"

不幸的是,
值为空。我正在尝试为我的应用程序提供错误消息,我想知道是否有某种方法可以获取这些信息,以便我可以增强消息,说明为什么没有创建实体,并让调用者知道字段(
在本例中为email
)。

特定的错误消息(包括违反的约束和列/值)位于字段
详细信息中

编辑


我猜
Column
是空的,因为unique约束可能会影响多个列
Constraint
提供约束名称,与
Schema
Table
结合使用,您可以在
pg\u Constraint
中查找此约束。字段
conkey
可能包含对覆盖属性的引用。

正确。我想知道为什么
是一个空字符串。如果我可以只获取
,而不必解析
细节
来获取字段名,那么这将是更好的选择。如果
为空,我是否做错了什么?我猜
为空,因为唯一约束可能会影响多个列
Constraint
提供约束名称,与
Schema
Table
相结合,您可以在
pg\u Constraint
中删除此约束。字段
conkey
可能包含对覆盖属性的引用。您的意思是
conkey
将包含对列的引用。