如何从 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中文网其他相关文章!