คำตอบ:
ใน PostgreSQL คุณสามารถใช้\connect
meta-command ของเครื่องมือไคลเอ็นต์ psql:
\connect DBNAME
หรือสั้น:
\c DBNAME
.sql
ไฟล์หรือไม่? เช่นฉันจะได้CREATE DATABASE mydb;
ตามมาด้วย\connect mydb
?
psql
คำสั่งในไฟล์สคริปต์ SQL ได้
คุณสามารถเชื่อมต่อกับฐานข้อมูลด้วยหรือ\c <database>
\connect <database>
ที่พรอมต์ PSQL คุณสามารถทำได้:
\connect (or \c) dbname
คุณสามารถเลือกฐานข้อมูลเมื่อเชื่อมต่อกับ psql สิ่งนี้มีประโยชน์เมื่อใช้จากสคริปต์:
sudo -u postgres psql -c "CREATE SCHEMA test AUTHORIZATION test;" test
\l
สำหรับฐานข้อมูล
\c
DatabaseName เพื่อสลับไปยัง db
\df
สำหรับโพรซีเดอร์ที่เก็บในฐานข้อมูลเฉพาะ
การใช้คำสั่ง meta-psql \c or \connect [ dbname [ username ] [ host ] [ port ] ] | conninfo
(ดูเอกสารประกอบ )
ตัวอย่าง: \c MyDatabase
โปรดทราบว่าคำสั่ง\c
และ\connect
meta -sensitiveนั้นจะตรงตาม
ใช้คำสั่งด้านล่างเพื่อสลับไปยังฐานข้อมูลต่างๆที่อยู่ใน postgreSQL RDMS ของคุณ
\c databaseName
หากคุณต้องการสลับไปยังฐานข้อมูลเฉพาะเมื่อเริ่มต้นให้ลอง
/Applications/Postgres.app/Contents/Versions/9.5/bin/psql vigneshdb;
ตามค่าเริ่มต้น Postgres จะทำงานบนพอร์ต 5432 หากทำงานบนพอร์ตอื่นให้ตรวจสอบให้แน่ใจว่าได้ผ่านพอร์ตในบรรทัดคำสั่ง
/Applications/Postgres.app/Contents/Versions/9.5/bin/psql -p2345 vigneshdb;
โดยนามแฝงง่ายๆเราสามารถทำให้เป็นประโยชน์
สร้างนามแฝงใน.bashrc
หรือของคุณ.bash_profile
function psql()
{
db=vigneshdb
if [ "$1" != ""]; then
db=$1
fi
/Applications/Postgres.app/Contents/Versions/9.5/bin/psql -p5432 $1
}
เรียกใช้psql
ในบรรทัดคำสั่งมันจะเปลี่ยนเป็นฐานข้อมูลเริ่มต้น psql anotherdb
มันจะสลับไปยัง db ด้วยชื่อในอาร์กิวเมนต์เมื่อเริ่มต้น
แม้ว่าจะไม่ได้ระบุไว้อย่างชัดเจนในคำถามวัตถุประสงค์คือเพื่อเชื่อมต่อกับสคีมา / ฐานข้อมูลที่เฉพาะเจาะจง
อีกตัวเลือกหนึ่งคือเชื่อมต่อกับสคีมาโดยตรง ตัวอย่าง:
sudo -u postgres psql -d my_database_name
แหล่งที่มาจากman psql
:
-d dbname
--dbname=dbname
Specifies the name of the database to connect to. This is equivalent to specifying dbname as the first non-option argument on the command line.
If this parameter contains an = sign or starts with a valid URI prefix (postgresql:// or postgres://), it is treated as a conninfo string. See Section 31.1.1, “Connection Strings”, in the
documentation for more information.
คุณยังสามารถเชื่อมต่อกับฐานข้อมูลด้วย ROLE อื่นได้ดังนี้
\connect DBNAME ROLENAME;
หรือ
\c DBNAME ROLENAME;
คุณสามารถเชื่อมต่อโดยใช้
\ c dbname
หากคุณต้องการที่จะเห็นคำสั่งที่เป็นไปได้ทั้งหมดสำหรับ POSTGRESQL หรือ SQL ทำตามขั้นตอนนี้:
rails dbconsole (คุณจะ redericted ไปยังฐานข้อมูล ENV ปัจจุบันของคุณ)
\? (สำหรับคำสั่ง POSTGRESQL)
หรือ
\ h (สำหรับคำสั่ง SQL)
กด Q เพื่อออก
ดังที่กล่าวไว้ในคำตอบอื่น ๆ คุณต้องเปลี่ยนการเชื่อมต่อเพื่อใช้ฐานข้อมูลอื่น
Postgres ทำงานกับสคีมา คุณสามารถมีหลายรูปแบบในฐานข้อมูลเดียว ดังนั้นหากคุณทำงานในฐานข้อมูลเดียวกันและต้องการเปลี่ยนสคีมาคุณสามารถทำได้:
SET SCHEMA 'schema_name';
SET SCHEMA
ใช้เป็นไม่ได้SET SCHEMA 'schema_name'
SET SCHEMA 'database_name'
ดังนั้นนี่เป็นวิธี SQL ในการเปลี่ยนสคีมาไม่ใช่ฐานข้อมูล SET search_path TO schema_name
นอกจากนี้จะคล้ายกับ ดูเอกสารที่นี่หรือที่นี่
psql
ส่วนหน้าของ PostgreSQL หรือไม่