web-dev-qa-db-fra.com

Comment obtenir le nom de la base de données actuelle depuis PostgreSQL?

En utilisant \c <database_name> dans PostgreSQL se connectera à la base de données nommée.

Comment déterminer le nom de la base de données actuelle?

Saisie:

my_db> current_database();

produit:

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

La fonction current_database() renvoie le nom de la base de données courante:

 SELECT current_database();

Il s'agit d'une fonction SQL, vous devez donc l'appeler dans le cadre d'une instruction SQL. PostgreSQL ne prend pas en charge l'exécution de fonctions en tant que requêtes autonomes et n'a pas d'instruction CALL comme certains autres moteurs SQL, vous devez donc simplement utiliser SELECT pour appeler une fonction.

159
Craig Ringer

vous pouvez utiliser "\ conninfo" en psql

36
John Duddy
\c

imprime quelque chose comme

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

Utilisez-le si cela ne vous dérange pas de créer une nouvelle connexion, car c'est ce qui se produit. Le\connect (abrégé en\c) sans tous les paramètres créera une nouvelle connexion identique à votre connexion actuelle. La connexion actuelle est fermée.

Voir les spécifications de la commande\connect sur http://www.postgresql.org/docs/9.3/static/app-psql.html :

Si l'un de dbname, username, Host ou port est omis (...), la valeur de ce paramètre de la connexion précédente est utilisée.

32
shful
SELECT * FROM current_catalog;
-- and
SELECT current_catalog;

... les deux fonctionnent également ( catalog est le SQL standard pour la base de données )

11
nikooters