データベースが PostgreSQL に既に存在するかどうかを確認する方法はありますか?
私はPostgreSQLの新しいものです。また、jdbc ドライバーを介して Java アプリケーションから確認する必要があります。
データベースが PostgreSQL に既に存在するかどうかを確認する方法はありますか?
私はPostgreSQLの新しいものです。また、jdbc ドライバーを介して Java アプリケーションから確認する必要があります。
PostgreSQLにはIF NOT EXISTS
オプションはありません。CREATE DATABASE
を参照してくださいCREATE DATABASE
。
DB が存在するかどうかを確認pg_database
し、存在しない場合にのみ作成を試みることができます。
フランクがコメントで指摘している制限のため、dblinkを介してこれを行う必要があります。
regress=> SELECT create_database_if_not_exists('test');
ERROR: CREATE DATABASE cannot be executed from a function or multi-command string
CONTEXT: SQL statement "CREATE DATABASE test"
PL/pgSQL function create_database_if_not_exists(text) line 6 at EXECUTE statement
この問題の別の解決策を見つけました。次のクエリを使用して:
ResultSet res = st.executeQuery("select count(*) from pg_catalog.pg_database where datname = 'sample'") ;
res.next();
int count = res.getInt("count");
System.out.println("Count : " + count);
if(count == 0) {
st.executeUpdate("CREATE DATABASE sample");
}
その仕事はうまくいく