db.Exec() 後の Postgres のエラー コード
db.Exec() を使用してクエリを実行すると、返されるエラーは次のようなものになる可能性があります。オペレーションのステータスに関する貴重な情報。実際のエラー メッセージは異なる場合がありますが、Postgres ドライバーは、特定の条件のエラー コードを検査する方法を提供します。
エラー コードへのアクセス
エラー コードにアクセスするには、 db.Exec() によって返されたエラーの場合は、それを *pq.Error 型にアサートしてから、その Code フィールドを使用できます。以下に例を示します。
<code class="go">if err, ok := err.(*pq.Error); ok { fmt.Println("Error code:", err.Code) }</code>
「データベースが存在しません」のエラー コード
残念ながら、Postgres は「データベースが存在しない」というエラー コードを提供していません。 「エラー。エラーのコード フィールドは「42P01」 (「構文エラー」の場合) に設定される可能性がありますが、これは保証されません。
特定のエラー コードの確認
「データベースが存在しません」エラーに対する特定のエラー コードはないため、エラー メッセージ文字列を自分で手動で解析する必要があります。 strings パッケージを使用すると、これを効果的に行うことができます。
<code class="go">if strings.Contains(err.Error(), "existence") && strings.Contains(err.Error(), "database") { // Database does not exist }</code>
追加のエラー フィールド
エラー コードに加えて、pq.Error タイプは他のフィールドを提供します。次のような貴重なコンテキストを提供できます。
以上がPostgres で pq.Error による「データベースが存在しません」エラーを処理する方法?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。