在PostgreSQL中是否有任何检查数据库的方法?
我在PostgreSQL中是一个新的。 还需要通过jdbc驱动程序从我的java应用程序中检查它。
答案 0 :(得分:3)
PostgreSQL中IF NOT EXISTS
没有CREATE DATABASE
选项。请参阅CREATE DATABASE
。
您可以检查pg_database
以查看数据库是否存在,如果不存在则只尝试创建数据库。
由于Frank在评论中指出的限制,您需要通过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
答案 1 :(得分: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");
}
工作正常
答案 2 :(得分:1)