如何从PostgreSQL中获取当前数据库的名称?


81

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

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

输入:

my_db> current_database();

产生:

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

7
选择current_database()
Mihai 2014年

1
在前面添加一个SELECT。
Mihai 2014年

4
您知道提示my_db已经告诉您当前数据库吗?
a_horse_with_no_name 2014年

Answers:


130

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

 SELECT current_database();

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


33

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


psql9.1版开始。psql但是,这些天基本上应该覆盖那里的所有客户。
dezso 2014年

26
\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,username,host或port中的任何一个(...),则使用先前连接中该参数的值。


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.