Wie erhalte ich den Namen der aktuellen Datenbank in PostgreSQL?

81

Unter Verwendung \c <database_name>von PostgreSQL wird eine Verbindung zur angegebenen Datenbank hergestellt.

Wie kann der Name der aktuellen Datenbank ermittelt werden?

Eingabe:

my_db> current_database();

produziert:

ERROR:  syntax error at or near "current_database"
LINE 1: current_database();
Amelio Vazquez-Reina
quelle
7
select current_database ()
Mihai
1
Fügen Sie zuvor ein SELECT hinzu.
Mihai
4
Sie wissen, dass die Eingabeaufforderung my_dbbereits die aktuelle Datenbank anzeigt?
a_horse_with_no_name

Antworten:

130

Die Funktion current_database()gibt den Namen der aktuellen Datenbank zurück:

 SELECT current_database();

Da es sich um eine SQL-Funktion handelt, müssen Sie sie als Teil einer SQL-Anweisung aufrufen. PostgreSQL unterstützt das Ausführen von Funktionen als eigenständige Abfragen nicht und hat keine CALLAnweisung wie einige andere SQL-Engines. Sie SELECTrufen also nur eine Funktion auf.

Craig Ringer
quelle
33

Sie können "\ conninfo" in psql verwenden

John Duddy
quelle
Ab psqlVersion 9.1. Das sollte jedoch im Grunde alle psqlKunden dieser Tage abdecken .
Dezso
26
\c

druckt so etwas wie

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

Verwenden Sie diese Option, wenn es Ihnen nichts ausmacht, eine neue Verbindung herzustellen, da dies der Fall ist. Mit \ connect (abgekürzt als \ c) ohne alle Parameter wird eine neue Verbindung erstellt, die mit der aktuellen identisch ist. Die aktuelle Verbindung ist geschlossen.

Weitere Informationen finden Sie in der \ connect-Befehlsspezifikation unter http://www.postgresql.org/docs/9.3/static/app-psql.html :

Wenn DB-Name, Benutzername, Host oder Port weggelassen werden (...), wird der Wert dieses Parameters aus der vorherigen Verbindung verwendet.

scheiße
quelle