如何從 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中文網其他相關文章!