创建数据库postgresql时出错

时间:2012-11-15 11:30:22

标签: database postgresql

在PostgreSQL中是否有任何检查数据库的方法?

我在PostgreSQL中是一个新的。 还需要通过jdbc驱动程序从我的java应用程序中检查它。

3 个答案:

答案 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)

假设您没有使用postgreSQL创建的许多数据库
这是查看您拥有和不拥有哪些数据库的简单方法

可以使用pgadmin,展开数据库列,查看您拥有和不拥有的数据库。

enter image description here

如黄色框所示,我在pgadmin中创建的数据库可以尝试