0

データベースが PostgreSQL に既に存在するかどうかを確認する方法はありますか?

私はPostgreSQLの新しいものです。また、jdbc ドライバーを介して Java アプリケーションから確認する必要があります。

4

3 に答える 3

3

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
于 2012-11-15T11:32:47.863 に答える
1

この問題の別の解決策を見つけました。次のクエリを使用して:

       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");
       }

その仕事はうまくいく

于 2012-11-20T08:44:47.510 に答える