データ内のテーブルが存在するかどうかを判断する方法
1090 ワード
面倒な問題に悩まされたばかりです.この問題は、データ内のテーブルが存在するかどうかを判断し、存在しない場合に作成する方法です.
はい、私はまず最も愚かな方法を使いました.selectを書いて表からデータを読み、異常をキャプチャすると同時に、改表が作成されていないことを知っています.
このときの異常はシステムエラーと認定されているようなので、後でテーブルを作成するコードは無視されます.
ほとんどの人のやり方はselect systemに似ている.table where tabblename='**',どうせ私は似たような文でDB 2を調べたことがありますが、成功しました.
しかし、私が今直面しているのはDB 2ではなく、7つの異なるデータベースで、基本的によく使われているのはすべて含まれています.各クラスのデータベースには、上記のクエリー文がありますか?クエリ文は似ていますか?そこでhsqldbを選び、現在のデフォルトデータベースでもあり、解決策を探しました.
残念ながら、前のような文は見つかりませんでした.私があきらめようとしたとき、次のコードを見つけました.このコードは私が海外のフォーラムから見つけたものです.万能の鍵かどうか分かりませんが、彼は今回私にとって万能になりました.
select count(*) from User_Tab_Columns where table_name='T_E_KMCJB' and column_name='JCBZ1';
(テーブルにフィールドがあるかどうかを確認し、大文字に注意します.)
select count(*) from all_tables where table_name='TD_KMDM';
(データベース内にテーブルが存在するかどうかを確認し、大文字に注意します.)
はい、私はまず最も愚かな方法を使いました.selectを書いて表からデータを読み、異常をキャプチャすると同時に、改表が作成されていないことを知っています.
このときの異常はシステムエラーと認定されているようなので、後でテーブルを作成するコードは無視されます.
ほとんどの人のやり方はselect systemに似ている.table where tabblename='**',どうせ私は似たような文でDB 2を調べたことがありますが、成功しました.
しかし、私が今直面しているのはDB 2ではなく、7つの異なるデータベースで、基本的によく使われているのはすべて含まれています.各クラスのデータベースには、上記のクエリー文がありますか?クエリ文は似ていますか?そこでhsqldbを選び、現在のデフォルトデータベースでもあり、解決策を探しました.
残念ながら、前のような文は見つかりませんでした.私があきらめようとしたとき、次のコードを見つけました.このコードは私が海外のフォーラムから見つけたものです.万能の鍵かどうか分かりませんが、彼は今回私にとって万能になりました.
java.sql.Connection con = getYourConnection();
ResultSet rs = con.getMetaData().getTables(null, null, "yourTable", null);
if (rs.next()) {
//yourTable exist
}else {
//yourTable not exist
}
select count(*) from User_Tab_Columns where table_name='T_E_KMCJB' and column_name='JCBZ1';
(テーブルにフィールドがあるかどうかを確認し、大文字に注意します.)
select count(*) from all_tables where table_name='TD_KMDM';
(データベース内にテーブルが存在するかどうかを確認し、大文字に注意します.)