0

有什么方法可以检查数据库在 PostgreSQL 中是否已经存在?

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

4

3 回答 3

3

在 PostgreSQL中没有IF NOT EXISTS选项。CREATE DATABASECREATE 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
于 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 回答
1

前提是你没有很多用 postgreSQL 制作的数据库
这是一个简单的方法来查看你有哪些数据库和没有哪些数据库

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

在此处输入图像描述

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

于 2019-10-07T00:29:51.923 回答