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>
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>
Zusätzliche Fehlerfelder
Zusätzlich zum Fehlercode stellt der Typ pq.Error weitere Felder bereit das kann wertvollen Kontext liefern, wie zum Beispiel:
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!