首頁 >後端開發 >Golang >如何在 Go 中使用 `db.Exec(...)` 辨識「資料庫不存在」錯誤?

如何在 Go 中使用 `db.Exec(...)` 辨識「資料庫不存在」錯誤?

Barbara Streisand
Barbara Streisand原創
2024-11-03 05:47:30645瀏覽

How to Identify a

如何從 Go 中的 db.Exec(...) 決定特定錯誤條件?

嘗試刪除 Postgres當資料庫使用 lib/pq 驅動程式時,開發人員可能會遇到區分標準錯誤和「資料庫不存在」錯誤的挑戰。為了有效地處理這些場景,必須了解驅動程式提供的錯誤處理機制。

lib/pq 套件以 *pq.Error 結構體的形式傳回錯誤,提供用於詳細錯誤檢查的各種欄位。要存取這些字段,請使用以下程式碼:

<code class="go">if err, ok := err.(*pq.Error); ok {
    // Manipulate err.Code, err.Message, etc.
}</code>

*pq.Error 提供以下字段:

<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>

每個字段代表特定的錯誤方面,例如錯誤嚴重性、代碼、訊息和相關資料庫物件。對於「資料庫不存在」錯誤的具體情況,請查閱Postgres文件以確定對應的錯誤代碼並根據需要與err.Code進行比較:https://www.postgresql.org/docs/current/errcodes-appendix .html

以上是如何在 Go 中使用 `db.Exec(...)` 辨識「資料庫不存在」錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn