Para adicionar à resposta anterior, atualmente você também pode usar algo assim para verificar códigos de erro (no exemplo:verificação de chaves duplicadas).
- (lib de github.com/jackc/pgx )
- Os erros do Postgres são explicados aqui
import "github.com/jackc/pgx"
...
func isDuplicateKeyError(err error) bool {
pgErr, ok := err.(pgx.PgError)
if ok {
// unique_violation = 23505
return pgErr.Code == "23505"
}
return false
}