You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Go语言中获取SQL插入操作的错误详情?

获取PostgreSQL详细错误信息(Go语言pq驱动)

Go语言中使用pq驱动操作PostgreSQL时,直接打印err只会输出简化的错误信息,但实际上驱动返回的错误是*pq.Error类型,包含了完整的PostgreSQL错误元数据,包括你需要的DETAIL字段。

只需要对错误进行类型断言,就能提取详细信息:

import (
    "log"
    "github.com/lib/pq"
)

// ... 你的数据库操作代码
_, err := db.Exec(query, params...)
if err != nil {
    // 断言为pq.Error类型
    if pqErr, ok := err.(*pq.Error); ok {
        log.Printf("插入失败: %s\n约束名: %s\n详细信息: %s", pqErr.Message, pqErr.Constraint, pqErr.Detail)
    } else {
        // 非pq驱动错误,直接打印
        log.Print(err)
    }
}

*pq.Error类型还包含其他实用字段:

  • Code:PostgreSQL标准错误码(例如外键约束违反对应23503)
  • Table:触发约束的表名
  • Column:涉及的字段名(如果有)

运行修改后的代码,就能得到和pgAdmin中一致的DETAIL错误信息。

内容的提问来源于stack exchange,提问作者Richy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.28 19:32:43