Como obter o nome do banco de dados atual no PostgreSQL?


81

O uso \c <database_name>no PostgreSQL se conectará ao banco de dados nomeado.

Como o nome do banco de dados atual pode ser determinado?

Entrando:

my_db> current_database();

produz:

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

7
Selecione current_database ()
Mihai

1
Adicione um SELECT antes.
Mihai

4
Você sabe que o prompt my_dbjá informa o banco de dados atual?
A_horse_with_no_name

Respostas:


131

A função current_database()retorna o nome do banco de dados atual:

 SELECT current_database();

É uma função SQL, então você deve chamá-la como parte de uma instrução SQL. O PostgreSQL não suporta funções em execução como consultas independentes e não possui CALLinstruções como outros mecanismos SQL; portanto, você apenas SELECTchama uma função.


34

você pode usar "\ conninfo" no psql


Da psqlversão 9.1. Isso deve cobrir basicamente todos os psqlclientes que estão por aí hoje em dia.
Dezső

26
\c

imprime algo como

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

Use isso se você não se importa em criar uma nova conexão, porque é isso que acontece. O \ connect (abreviado como \ c) sem todos os parâmetros criará uma nova conexão idêntica à sua atual. A conexão atual está fechada.

Consulte a especificação do comando \ connect em http://www.postgresql.org/docs/9.3/static/app-psql.html :

Se qualquer um de dbname, nome de usuário, host ou porta for omitido (...), o valor desse parâmetro da conexão anterior será usado.


Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.