ここでは、mySQLデータベースにアクセスするjavaコードがあります。テーブルが存在するかどうかをチェックします。テーブルは削除されて存在しませんが、以下のコードはテーブルが存在すると示しています。MySQL RDMSにテーブルが存在するか確認する
private Boolean tableExists(String globalId) {
// schema Test
DBResult result = db.selectQuery("SELECT table_name
FROM information_schema.tables
WHERE table_schema = '"+schema+"'
AND table_name = " + "\'" + "category_"+globalId.split("-")[1]+ "\'"+";");
if(result.getRowCount() > 0) {
logger.info(" Table exist "+globalId);
return true;
} else {
logger.info("table does not exist "+ globalId);
return false;
}
}
このメソッドは、テーブルが存在するとtrueを返します。後で、プログラムはテーブルが存在せず、クラッシュすることをキャッチします。問題は何ですか?プログラムはTomcat 6で動作します。
私はあまり理解していませんが、[MySQLでINFORMATION_SCHEMAテーブルを使用しているときに同期の問題が発生しました](http://stackoverflow.com/questions/3169525/mysql-wtf-with-information-schema-tables) –