¿Cómo obtener el nombre de la base de datos actual desde PostgreSQL?


81

El uso \c <database_name>en PostgreSQL se conectará a la base de datos nombrada.

¿Cómo se puede determinar el nombre de la base de datos actual?

Entrando:

my_db> current_database();

produce:

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

77
seleccione current_database ()
Mihai

1
Agregue un SELECCIONAR antes.
Mihai

44
¿Sabes que el mensaje my_dbya te dice la base de datos actual?
a_horse_with_no_name

Respuestas:


131

La función current_database()devuelve el nombre de la base de datos actual:

 SELECT current_database();

Es una función SQL, por lo que debe llamarla como parte de una instrucción SQL. PostgreSQL no admite funciones en ejecución como consultas independientes, y no tiene una CALLdeclaración como otros motores SQL, por lo que solo se usa SELECTpara llamar a una función.


34

puedes usar "\ conninfo" en psql


Desde la psqlversión 9.1. Sin psqlembargo, eso debería cubrir básicamente a todos los clientes que existen actualmente.
dezso

26
\c

imprime algo como

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

Use esto si no le importa crear una nueva conexión, porque esto es lo que sucede. El \ connect (acortado como \ c) sin todos los parámetros creará una nueva conexión idéntica a la actual. La conexión actual está cerrada.

Consulte las especificaciones del comando \ connect en http://www.postgresql.org/docs/9.3/static/app-psql.html :

Si se omite cualquiera de dbname, nombre de usuario, host o puerto (...), se utiliza el valor de ese parámetro de la conexión anterior.


Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.