Як отримати ім’я поточної бази даних з 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

Відповіді:


130

Функція current_database()повертає ім'я поточної бази даних:

 SELECT current_database();

Це функція SQL, тому її потрібно викликати як частину оператора SQL. PostgreSQL не підтримує запущені функції в якості самостійних запитів і не має CALLоператора, як у інших двигунів SQL, тому ви просто використовуєте SELECTдля виклику функції.


33

ви можете використовувати "\ conninfo" у psql


З psqlверсії 9.1. Але це повинно охоплювати в основному всіх psqlклієнтів там, хоча сьогодні.
dezso

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, ім'я користувача, хост або порт пропущено (...), використовується значення цього параметра з попереднього з'єднання.


Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.