PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

L'erreur renvoyée par db.Exec(...) a-t-elle un code ?

Le lib/pq package peut renvoyer des erreurs de type *pq.Error , qui est une structure. Si c'est le cas, vous pouvez utiliser tous ses champs pour inspecter les détails de l'erreur.

Voici comment cela peut être fait :

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 contient les champs suivants :

type Error struct {
    Severity         string
    Code             ErrorCode
    Message          string
    Detail           string
    Hint             string
    Position         string
    InternalPosition string
    InternalQuery    string
    Where            string
    Schema           string
    Table            string
    Column           string
    DataTypeName     string
    Constraint       string
    File             string
    Line             string
    Routine          string
}

La signification et les valeurs possibles de ces champs sont spécifiques à Postres et la liste complète peut être trouvée ici :Champs des messages d'erreur et d'avis