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.