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