ホームページ  >  記事  >  バックエンド開発  >  Go で `db.Exec(...)` を使用して「データベースが存在しません」エラーを特定する方法

Go で `db.Exec(...)` を使用して「データベースが存在しません」エラーを特定する方法

Barbara Streisand
Barbara Streisandオリジナル
2024-11-03 05:47:30578ブラウズ

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 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。