35

H2 テーブルが存在するかどうかを確認する Java コードを作成しようとしています。存在しない場合は、CREATE TABLE先に進む前に、まずテーブルを作成するクエリを実行します。

この Google グループの質問のアドバイスに従いましたが、うまくいきません。

次のクエリを実行すると:

SELECT COUNT(*) AS count FROM information_schema.tables WHERE table_name = 'word_types'

COUNT値が 0のフィールドを含む単一の行が返されます。これは、word_typesテーブルが存在しないことを示しています。しかし、私が実行すると:

SELECT * FROM word_types

0 の結果セットが返されますが、使用している SQL フロントエンド/GUI には、word_typesテーブルに存在するすべてのフィールド/列が表示されます。さらに、(同じ GUI を使用して) データベースの使用可能なテーブルのリストをドリルダウンすると、存在することがわかりword_typesます。

では、H2 テーブルが存在するかどうかを判断するときに使用する正しいクエリは何ですか? v1.3.173 を使用。前もって感謝します!

4

5 に答える 5

70

まず、テーブル名を入力する際に​​大文字と小文字を区別してください。それは非常に重要です。word_typesWORD_TYPESは 2 つの異なるテーブルです。
2番目:テーブルが存在するかどうかを確認し、存在しない場合は作成する場合は、次の例を使用することをお勧めします。

CREATE TABLE IF NOT EXISTS TEST(ID INT PRIMARY KEY, NAME VARCHAR(255));
于 2013-10-22T13:59:30.847 に答える
0

2 番目のクエリで例外がスローされず、行も返されない場合は、テーブルは存在するが空であることを意味します。

于 2013-10-22T12:50:50.887 に答える