Jak uzyskać nazwę bieżącej bazy danych z poziomu PostgreSQL?


81

Korzystanie \c <database_name>z PostgreSQL połączy się z nazwaną bazą danych.

Jak określić nazwę bieżącej bazy danych?

Wstępowanie:

my_db> current_database();

produkuje:

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

7
wybierz current_database ()
Mihai

1
Dodaj WYBIERZ wcześniej.
Mihai

4
Czy wiesz, że monit my_dbjuż informuje o bieżącej bazie danych?
a_horse_w_no_name

Odpowiedzi:


130

Funkcja current_database()zwraca nazwę bieżącej bazy danych:

 SELECT current_database();

Jest to funkcja SQL, więc musisz wywołać ją jako część instrukcji SQL. PostgreSQL nie obsługuje uruchamiania funkcji jako samodzielnych zapytań i nie ma CALLinstrukcji takich jak niektóre inne silniki SQL, więc wystarczy SELECTwywołać funkcję.


33

możesz użyć „\ conninfo” w psql


Od psqlwersji 9.1. To powinno jednak obejmować w zasadzie wszystkich psqlklientów.
dezso

26
\c

drukuje coś podobnego

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

Użyj tego, jeśli nie masz nic przeciwko tworzeniu nowego połączenia, ponieważ tak się dzieje. Opcja \ connect (skrócona jako \ c) bez wszystkich parametrów spowoduje utworzenie nowego połączenia identycznego z bieżącym. Bieżące połączenie jest zamknięte.

Zobacz specyfikację polecenia \ connect na http://www.postgresql.org/docs/9.3/static/app-psql.html :

Jeśli pominięto dowolną z nazw dbname, username, host lub port (...), używana jest wartość tego parametru z poprzedniego połączenia.


Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.