Wie gehe ich mit „Datenbank existiert nicht'-Fehlern mit pq.Error in Postgres um?

Linda Hamilton
Freigeben: 2024-11-03 07:33:02
Original
491 Leute haben es durchsucht

How to Handle

Fehlercodes in Postgres nach db.Exec()

Beim Ausführen einer Abfrage mit db.Exec() kann der zurückgegebene Fehler auftreten wertvolle Informationen über den Stand der Operation. Während die tatsächliche Fehlermeldung variieren kann, bietet der Postgres-Treiber eine Möglichkeit, Fehlercodes für bestimmte Bedingungen zu überprüfen.

Zugriff auf Fehlercodes

Um auf den Fehlercode zuzugreifen Wenn ein Fehler von db.Exec() zurückgegeben wird, können Sie ihn mit dem Typ *pq.Error bestätigen und dann sein Codefeld verwenden. Hier ist ein Beispiel:

<code class="go">if err, ok := err.(*pq.Error); ok {
    fmt.Println("Error code:", err.Code)
}</code>
Nach dem Login kopieren

Fehlercode für „Datenbank existiert nicht“

Leider stellt Postgres keinen spezifischen Fehlercode für „Datenbank existiert nicht“ zur Verfügung „Fehler. Das Codefeld des Fehlers wird wahrscheinlich auf „42P01“ (für „Syntaxfehler“) gesetzt, dies ist jedoch nicht garantiert.

Überprüfung auf spezifische Fehlercodes

Da es keinen spezifischen Fehlercode für „Datenbank existiert nicht“-Fehler gibt, müssen Sie die Fehlermeldungszeichenfolge selbst manuell analysieren. Sie können das Strings-Paket verwenden, um dies effektiv zu tun:

<code class="go">if strings.Contains(err.Error(), "existence") && strings.Contains(err.Error(), "database") {
    // Database does not exist
}</code>
Nach dem Login kopieren

Zusätzliche Fehlerfelder

Zusätzlich zum Fehlercode stellt der Typ pq.Error weitere Felder bereit das kann wertvollen Kontext liefern, wie zum Beispiel:

  • Nachricht: Die Fehlermeldungszeichenfolge
  • Detail: Detaillierte Informationen zum Fehler
  • Hinweis: Ein Hinweis zur Vorgehensweise Beheben Sie den Fehler
  • Position: Die Position in der Eingabeabfrage, an der der Fehler aufgetreten ist
  • Wobei: Die Fehlerquelle innerhalb der Abfrage

Das obige ist der detaillierte Inhalt vonWie gehe ich mit „Datenbank existiert nicht'-Fehlern mit pq.Error in Postgres um?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage