จะรับชื่อฐานข้อมูลปัจจุบันจากภายใน 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
เพิ่มการเลือกก่อน
หมดเวลา

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".

ใช้สิ่งนี้หากคุณไม่รังเกียจที่จะสร้างการเชื่อมต่อใหม่เพราะนี่คือสิ่งที่เกิดขึ้น กระบวนการ \ เชื่อมต่อ (ย่อเป็น \ c) โดยไม่มีพารามิเตอร์ทั้งหมดจะสร้างการเชื่อมต่อใหม่เหมือนกับที่คุณใช้อยู่ในปัจจุบัน การเชื่อมต่อปัจจุบันถูกปิด

ดูข้อมูลจำเพาะของคำสั่ง \ connect ได้ที่http://www.postgresql.org/docs/9.3/static/app-psql.html :

หากไม่ระบุ dbname, ชื่อผู้ใช้โฮสต์หรือพอร์ต (... ) ค่าของพารามิเตอร์นั้นจากการเชื่อมต่อก่อนหน้านี้จะถูกใช้


โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.