Il lib/pq
il pacchetto può restituire errori di tipo *pq.Error
, che è una struttura. In tal caso, puoi utilizzare tutti i suoi campi per esaminare i dettagli dell'errore.
Ecco come si può fare:
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
ha i seguenti campi:
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
}
Il significato e i possibili valori di questi campi sono specifici di Postres e l'elenco completo può essere trovato qui:Campi dei messaggi di errore e di avviso