db.Exec(...) によって返されたエラーのコードを確認する
Postgres を使用してデータベースを削除するプロセス中ドライバー (lib/pq) では、通常のエラーと「データベースが存在しない」エラーを区別する試みが行われます。これを達成するには、次の疑問が生じます:
返されたエラーがデータベースが存在しないことを示しているか、それともエラー文字列の手動解析が必要かを識別するために使用できる定数変数またはメカニズムはありますか?
Postgres のドキュメントには「データベースが存在しません」エラー コードについての具体的な記述がありませんが、lib/pq パッケージは、詳細なエラー情報を提供するさまざまなフィールドを持つ構造体である *pq.Error タイプのエラーを返します。
エラー コードを確認し、必要な条件付きアクションを実行するには、次の手順を実行します。
<code class="go">if err, ok := err.(*pq.Error); ok { // Here err is of type *pq.Error, you may inspect all its fields, e.g.: fmt.Println("pq error:", err.Code.Name()) }</code>
*pq.Error 構造体には次のフィールドが含まれており、それぞれに Postres 固有の情報と値が含まれています。
<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 ドキュメントの「エラーおよび通知メッセージ フィールド」にあります。
これらのフィールドを利用することで、正確に識別することができます。データベース操作に Postgres ドライバーを使用するときに、必要なエラー条件を処理します。
以上がPostgres ドライバーでの「データベースが存在しません」エラーを特定する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。