gpt4 book ai didi

postgresql - 如何获取 unique_constraint 违规的列名?

转载 作者:数据小太阳 更新时间:2023-10-29 03:32:12 25 4
gpt4 key购买 nike

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

我可以解析 Detail 但是 Column 是空的有什么原因吗?如果我可以从 Column 获取 email 而不是解析 Detail

会更好

这是错误的样子:

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"

不幸的是,Column 值为空。我正在尝试为我的应用程序提供错误消息,我想知道是否有某种方法可以获取该信息,以便我可以增强未创建实体的消息并让调用者知道该字段(电子邮件在这种情况下)也是如此。

最佳答案

具体的错误消息(包括违反的约束和列/值)在字段Detail中。

编辑:

我猜 Column 是空的,因为唯一约束可能会影响多个列。 Constraint 提供约束名称,结合 SchemaTable 您可以在 pg_constraint 中查找此约束。字段 conkey 可能包含对所覆盖属性的引用。

关于postgresql - 如何获取 unique_constraint 违规的列名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57846270/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com