db.Exec("DROP DATABASE dbName;" を使用してデータベースを削除しようとしたとき) postgres ドライバー (lib/pq) を使用すると、予想されるエラー (「データベースが存在しません」など) と予期しないエラーを区別するのに役立ちます。
特定のエラー コードが返された場合は、返されたエラーを検査する必要があります。 lib/pq パッケージは、構造体である *pq.Error タイプのエラーを返します。この構造体は、エラー コードを含む詳細なエラー情報へのアクセスを提供します。
<code class="go">if err, ok := err.(*pq.Error); ok { // Here err is of type *pq.Error and you can inspect its fields fmt.Println("pq error code:", err.Code.Name()) }</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>
残念ながら、PostgreSQL には「データベースが存在しない」エラーに対する特定のエラー コードはありません。代わりに、次のようなエラーが発生する場合があります:
専用のエラー コードがないため、手動でエラー メッセージを解析し、「データベースが存在しません」や「テーブルまたはビューが見つかりません」などのキー フレーズを確認する必要がある場合があります。
<code class="go">if strings.Contains(err.Message, "database does not exist") { // Handle database non-existence error }</code>
*pq.Error フィールドを検査し、エラー メッセージを手動で解析することで、データベースが存在しないエラーを効果的に処理し、適切な条件付きアクションを実行できます。
以上がPostgreSQL ドライバーを使用してデータベースを削除するときに、データベースが存在しないエラーをどのように処理しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。