所述
lib/pq封装可以返回类型的错误
*pq.Error,这是一个结构。如果是这样,则可以使用其所有字段来检查错误的详细信息。
这是可以做到的:
if err, ok := err.(*pq.Error); ok { // Here err is of type *pq.Error, you may inspect all its fields, e.g.: fmt.Println("pq error:", err.Code.Name())}pq.Error具有以下字段:
type Error struct { Severity string Code ErrorCode Message string Detailstring Hint string Position string InternalPosition string InternalQuery string Where string Schemastring Table string Columnstring DataTypeName string Constraint string File string Line string Routine string}这些字段的含义和可能的值是特定于Postres的,完整列表可在此处找到:错误和通知消息字段



