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