有什么方法可以检查数据库在 PostgreSQL 中是否已经存在?
我是 PostgreSQL 的新成员。并且还需要通过 jdbc 驱动程序从我的 java 应用程序中检查它。
有什么方法可以检查数据库在 PostgreSQL 中是否已经存在?
我是 PostgreSQL 的新成员。并且还需要通过 jdbc 驱动程序从我的 java 应用程序中检查它。
在 PostgreSQL中没有IF NOT EXISTS
选项。CREATE DATABASE
见CREATE DATABASE
。
您可以检查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");
}
它的工作正常