在PostgreSQL中使用\c <database_name>将连接到命名数据库。

如何确定当前数据库的名称?

输入:

my_db> current_database();


/>
ERROR:  syntax error at or near "current_database"
LINE 1: current_database();


#1 楼

函数current_database()返回当前数据库的名称:

 SELECT current_database();


这是一个SQL函数,因此必须将其作为SQL语句的一部分进行调用。 PostgreSQL不支持将运行函数作为独立查询运行,并且不像其他SQL引擎那样具有CALL语句,因此您只需使用SELECT来调用函数。

#2 楼

您可以在psql中使用“ \ conninfo”

评论


从psql 9.1版开始。不过,这基本上应该涵盖目前所有的psql客户端。

– dezso
14-10-8在11:42

#3 楼

\c


打印类似

You are now connected to database "foobar" as user "squanderer".


如果您不介意创建新连接,请使用此选项,因为这会发生。没有所有参数的\ connect(缩写为\ c)将创建一个与当前连接相同的新连接。当前连接已关闭。

请参见http://www.postgresql.org/docs/9.3/static/app-psql.html上的\ connect命令规范:


如果省略dbname,用户名,主机或端口(...)
中的任何一个,则使用先前连接中该参数的值。


#4 楼

SELECT * FROM current_catalog;
-- and
SELECT current_catalog;


...也都可以工作(catalog是数据库的标准SQL)

#5 楼

PostgreSQL列出数据库-列出在PostgreSQL服务器中创建的所有数据库。
postgres=# \l
postgres=# \list

要检查您连接到的当前数据库。
SELECT current_database();


评论


这与现有的可接受答案(除了提供无关信息)有何不同?

–必须
7月25日下午16:52

\ l非常方便,这是一个很好的建议。

–星
9月12日下午5:57

我认为只是看门人拒绝了这个答案,保护了他们宝贵的声誉

–米格尔·卡瓦哈(Miguel Carvajal)
11月10日9:27