Как получить имя текущей базы данных из PostgreSQL?


81

Использование \c <database_name>в PostgreSQL будет подключаться к указанной базе данных.

Как определить имя текущей базы данных?

Ввод:

my_db> current_database();

производит:

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

7
выберите current_database ()
Михай

1
Добавьте SELECT раньше.
Михай

4
Вы знаете, что подсказка my_dbуже сообщает вам текущую базу данных?
a_horse_with_no_name

Ответы:


131

Функция current_database()возвращает имя текущей базы данных:

 SELECT current_database();

Это функция SQL, поэтому вы должны вызывать ее как часть оператора SQL. PostgreSQL не поддерживает запуск функций в качестве автономных запросов и не имеет CALLоператоров, как некоторые другие механизмы SQL, поэтому вы просто используете SELECTдля вызова функции.


34

Вы можете использовать "\ conninfo" в PSQL


С psqlверсии 9.1. Это должно охватывать в основном всех psqlклиентов в эти дни, хотя.
Дезсо

26
\c

печатает что-то вроде

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

Используйте это, если вы не против создания нового соединения, потому что это то, что происходит. \ Connect (сокращенно как \ c) без всех параметров создаст новое соединение, идентичное вашему текущему. Текущее соединение закрыто.

См. Спецификацию команды \ connect на http://www.postgresql.org/docs/9.3/static/app-psql.html :

Если какие-либо из dbname, username, host или port опущены (...), используется значение этого параметра из предыдущего соединения.


Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.