sql >> Databasteknik >  >> RDS >> PostgreSQL

Har felet som returneras av db.Exec(...) en kod?

lib/pq paketet kan returnera fel av typen *pq.Error , som är en struktur. Om det gör det kan du använda alla dess fält för att kontrollera detaljer om felet.

Så här kan det göras:

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 har följande fält:

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
}

Innebörden och möjliga värden för dessa fält är Postres-specifika och hela listan kan hittas här:Fält för fel och meddelandemeddelanden



  1. lagra arabiska i SQL-databas

  2. PHP PDO Update Statement fungerar inte

  3. Användarmeddelandesystem

  4. Hur man skriver pandas dataram till oracle databas med to_sql?