Database 创建数据库postgresql时出错

Database 创建数据库postgresql时出错,database,postgresql,Database,Postgresql,有没有办法检查PostgreSQL中是否已经存在数据库 我是PostgreSQL的新成员。 还需要通过jdbc驱动程序从我的java应用程序中进行检查。PostgreSQL中的创建数据库没有选项(如果不存在)。看 您可以检查pg_数据库,查看数据库是否存在,只有在数据库不存在时才尝试创建它 由于Frank在评论中指出的限制,您需要通过: regress=> SELECT create_database_if_not_exists('test'); ERROR: CREATE DATABA

有没有办法检查PostgreSQL中是否已经存在数据库

我是PostgreSQL的新成员。
还需要通过jdbc驱动程序从我的java应用程序中进行检查。

PostgreSQL中的
创建数据库
没有
选项(如果不存在)。看

您可以检查
pg_数据库
,查看数据库是否存在,只有在数据库不存在时才尝试创建它

由于Frank在评论中指出的限制,您需要通过:

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

PostgreSQL中的
创建数据库
没有
如果不存在
选项。看

您可以检查
pg_数据库
,查看数据库是否存在,只有在数据库不存在时才尝试创建它

由于Frank在评论中指出的限制,您需要通过:

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

它的工作很好

我找到了这个问题的替代解决方案。通过使用以下查询:

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

它的工作很好

前提是您没有太多用postgreSQL制作的数据库
以下是查看您有哪些数据库和没有哪些数据库的简单方法

可以使用pgadmin,并展开数据库列,查看您有哪些数据库和没有哪些数据库


如黄色框所示,我在pgadmin中创建的数据库可以尝试此操作,前提是您没有太多用postgreSQL创建的数据库
以下是查看您有哪些数据库和没有哪些数据库的简单方法

可以使用pgadmin,并展开数据库列,查看您有哪些数据库和没有哪些数据库


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

这是我在9.1上得到的:“创建数据库不能从函数或多命令字符串执行”@FrankHeikens教我不要测试所有案例;我用一个现有的数据库检查了函数语法,但实际上没有创建一个。这是我在9.1上得到的:“创建数据库不能从函数或多命令字符串执行”@FrankHeikens教我不要测试所有的情况;我用一个现有的数据库检查了函数语法,但实际上没有创建一个。