gpt4 book ai didi

postgresql - 在lib/pq中访问唯一约束错误

转载 作者:行者123 更新时间:2023-12-01 21:15:06 24 4
gpt4 key购买 nike

我想通过访问错误代码来处理一个postgresql唯一约束错误。我看过这些文章herehere,还看过了文档here,但是仍然不太了解如何实现它以及如何访问数据库返回的错误代码。似乎仅实现了Message字段方法:

func (err Error) Error() string {
return "pq: " + err.Message
}

如果我想访问SQLSTATE代码,是否实现类似以下内容的方法:
func (err *Error) Error() string {
return err.Code
}

并假设定义了 here的Error结构可用。

我在处理程序中尝试了以下操作:
sqlInsert := INSERT INTO usrtable (usrCode, teamName, email, phone) VALUES ($1,$2,$3,$4)

_, err := db.Exec(sqlInsert, Data.UsrCode, Data.Teamname, Data.Email, Data.Phone)
if err != nil {
switch err {
case errorCodeNames["23505"]:
// Return web page identifying field and advising user what to do.
return

这将返回undefined,这是有道理的,因为没有导出errorCodeNames,但是我对如何实现这一点感到困惑。

最佳答案

如果您使用的是Postgres,则可以执行以下操作:

if pgErr, ok := err.(*pq.Error); ok {
if pgErr.Code == "23505" {
//handle duplicate insert
}
}

关于postgresql - 在lib/pq中访问唯一约束错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48232311/

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