2011-03-02 16 views
0

MySQLがインストールされている場合はインストールするWPFアプリケーションで作業していますので、インストール前にmysql.procテーブルが存在するかどうかを確認してください。 私はそれについてGoogleで検索し、このクエリは、空の行を返すクエリテーブルmysql.procが存在するかどうかを確認するには

select * from information_schema.Tables 
    where Table_schema = Schema() and Table_Name = 'mysql.proc' 

になってしまいました。

私はまた、選択の簡単な声明 select * from mysql.procを試してみました 、これはすべてのストアドプロシージャの名前を持つテーブルを返されたが、このテーブルはその後、存在しなかった場合、それはC#のコードで例外がスローされます。

したがって、私はC#からの呼び出しを呼び出すことができ、mysql.procテーブルが存在するかどうかによってブール値を取得できますか?

答えて

1

お試しSHOW TABLES FROM mysql LIKE 'proc'結果行がない場合、その表は存在しません。 1つの行がある場合は、テーブルが存在します。このアプローチは、RDBMS間で移植可能ではありませんが、それはあなたの懸念事項ではないようです。

最初のクエリでは、SCHEMA()がデフォルトのデータベースを返します。したがって、「mysql」でない場合、クエリは失敗します。同様に、Table_Name列のデータにはデータベース名が含まれていないため、 'mysql.proc'と比較すると常に失敗します。

関連する問題