Bagaimana cara mendapatkan nama database saat ini dari dalam PostgreSQL?


81

Menggunakan \c <database_name>di PostgreSQL akan terhubung ke database bernama.

Bagaimana nama basis data saat ini dapat ditentukan?

Memasuki:

my_db> current_database();

menghasilkan:

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

7
pilih current_database ()
Mihai

1
Tambahkan SELECT sebelumnya.
Mihai

4
Anda tahu bahwa prompt my_dbsudah memberi tahu Anda database saat ini?
a_horse_with_no_name

Jawaban:


131

Fungsi current_database()mengembalikan nama database saat ini:

 SELECT current_database();

Ini adalah fungsi SQL, jadi Anda harus menyebutnya sebagai bagian dari pernyataan SQL. PostgreSQL tidak mendukung fungsi yang berjalan sebagai permintaan mandiri, dan tidak memiliki CALLpernyataan seperti beberapa mesin SQL lainnya, jadi Anda hanya SELECTperlu memanggil fungsi.


34

Anda dapat menggunakan "\ conninfo" di psql


Dari psqlversi 9.1. Yang pada dasarnya harus mencakup semua psqlklien di luar sana hari ini.
dezso

26
\c

mencetak sesuatu seperti

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

Gunakan ini jika Anda tidak keberatan membuat koneksi baru, karena inilah yang terjadi. \ Connect (disingkat \ c) tanpa semua parameter akan membuat koneksi baru yang identik dengan koneksi Anda saat ini. Koneksi saat ini ditutup.

Lihat \ menghubungkan spesifikasi perintah di http://www.postgresql.org/docs/9.3/static/app-psql.html :

Jika ada dbname, nama pengguna, host atau port dihilangkan (...), nilai parameter itu dari koneksi sebelumnya digunakan.


Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.