Heim  >  Artikel  >  Backend-Entwicklung  >  Wie erkennt man den Fehler „Datenbank existiert nicht“ mit dem Postgres-Treiber?

Wie erkennt man den Fehler „Datenbank existiert nicht“ mit dem Postgres-Treiber?

Patricia Arquette
Patricia ArquetteOriginal
2024-11-02 17:03:29999Durchsuche

How to Identify

Ermitteln des Codes eines von db.Exec(...) zurückgegebenen Fehlers

Beim Löschen einer Datenbank mithilfe von Postgres Treiber (lib/pq) wird versucht, zwischen gewöhnlichen Fehlern und „Datenbank existiert nicht“-Fehlern zu unterscheiden. Um dies zu erreichen, stellt sich die folgende Frage:

Gibt es eine konstante Variable oder einen Mechanismus, mit dem ermittelt werden kann, ob der zurückgegebene Fehler darauf hinweist, dass die Datenbank nicht vorhanden ist, oder ist eine manuelle Analyse der Fehlerzeichenfolge erforderlich?

Während in der Postgres-Dokumentation die Fehlercodes „Datenbank existiert nicht“ nicht ausdrücklich erwähnt werden, gibt das lib/pq-Paket Fehler vom Typ *pq.Error zurück, eine Struktur mit verschiedenen Feldern, die detaillierte Fehlerinformationen liefern.

Um nach Fehlercodes zu suchen und die gewünschte bedingte Aktion auszuführen, gehen Sie wie folgt vor:

<code class="go">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())
}</code>

Die *pq.Error-Struktur enthält die folgenden Felder, die jeweils Postres-spezifische Informationen und Werte enthalten:

<code class="go">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
}</code>

Die vollständige Liste der Bedeutungen und möglichen Werte dieser Felder finden Sie in der Postgres-Dokumentation unter: Fehler- und Hinweismeldungsfelder.

Durch die Verwendung dieser Felder ist eine genaue Identifizierung möglich und behandeln Sie die gewünschten Fehlerbedingungen, wenn Sie den Postgres-Treiber für Datenbankoperationen verwenden.

Das obige ist der detaillierte Inhalt vonWie erkennt man den Fehler „Datenbank existiert nicht“ mit dem Postgres-Treiber?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn