これを行うには、次の SQL ステートメントを実行します。
SELECT SCHEMA_NAME FROM INFORMATION_SCHEMA.SCHEMATA WHERE SCHEMA_NAME = "my_db"
返された結果セットに存在しない場合は、作成できます。
これにより、MySQL のアクセス許可に関する疑問が生じます。また、アプリケーションにそのようなチェックを有効にするユーザー権限が必要かどうかについても疑問が生じます。
コメントに応じて編集します。
接続文字列を作成するかどうかは明確ではありません。最悪の場合を想定し、クライアントが入力できるようにセットアップの一部であると想定します (わかっている場合は、以下のプロセスが簡素化されます.
接続文字列をクラスのコンストラクターに渡すと、MySqlConnectionStringBuilder
クラスを使用してデータベースに簡単に接続できるようになりますMySqlConnection
。MySqlConnectionStringBuilder
クラスの新しいインスタンス (サーバー、ホスト、ユーザーなど)のプロパティを使用して、MySqlConnection
クラスをセットアップします。
接続が機能しない場合は、ユーザーに情報を返し、ユーザーは接続文字列を更新できます。
Database
データベースに正常に接続したら、インスタンスのプロパティのデータベース名を使用してMySqlConnectionStringBuilder
上記のクエリを作成します。
コマンドが NULL を返す場合、データベースは存在しないため作成する必要があります。データベースが存在する場合、コマンドはデータベースの名前を返します。
現在、次の 2 つのパスがあります。
- 存在しません– 作成する必要があります。おそらく、create ステートメントを含む外部 SQL ファイルがあります (–nodata オプションを使用して MySQL ダンプによって生成できます)。このファイルを解析し、create ステートメントを実行します。
- 存在します。インストールを続行する前に、データベースの構造をチェックして互換性があることを確認します。