Làm thế nào để có được tên của cơ sở dữ liệu hiện tại từ bên trong PostgreSQL?


81

Sử dụng \c <database_name>trong PostgreSQL sẽ kết nối với cơ sở dữ liệu được đặt tên.

Làm thế nào có thể xác định tên của cơ sở dữ liệu hiện tại?

Đang vào:

my_db> current_database();

sản xuất:

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

7
chọn current_database ()
Mihai

1
Thêm một CHỌN trước.
Mihai

4
Bạn biết rằng dấu nhắc my_dbđã cho bạn biết cơ sở dữ liệu hiện tại?
a_horse_with_no_name

Câu trả lời:


130

Hàm current_database()trả về tên của cơ sở dữ liệu hiện tại:

 SELECT current_database();

Đây là một hàm SQL, vì vậy bạn phải gọi nó là một phần của câu lệnh SQL. PostgreSQL không hỗ trợ chạy các hàm như các truy vấn độc lập và không có CALLcâu lệnh nào như một số công cụ SQL khác, vì vậy bạn chỉ cần sử dụng SELECTđể gọi một hàm.


33

bạn có thể sử dụng "\ Conninfo" trong psql


Từ psqlphiên bản 9.1. Điều đó sẽ bao gồm cơ bản tất cả các psqlkhách hàng hiện nay, mặc dù.
dezso

26
\c

in một cái gì đó như

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

Sử dụng điều này nếu bạn không ngại tạo kết nối mới, vì đây là điều xảy ra. \ Kết nối (rút ngắn là \ c) không có tất cả các tham số sẽ tạo ra một kết nối mới giống hệt với kết nối hiện tại của bạn. Kết nối hiện tại đã bị đóng.

Xem thông số lệnh \ connect trên http://www.postgresql.org/docs/9.3/static/app-psql.html :

Nếu bất kỳ dbname, tên người dùng, máy chủ hoặc cổng nào bị bỏ qua (...), giá trị của tham số đó từ kết nối trước đó sẽ được sử dụng.


Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.