Câu trả lời:
Trong PostgreSQL, bạn có thể sử dụng lệnh \connect
meta của công cụ máy khách psql:
\connect DBNAME
hoặc nói ngắn gọn:
\c DBNAME
.sql
tập tin? ví dụ tôi có thể CREATE DATABASE mydb;
theo sau \connect mydb
không?
psql
các lệnh trong tệp tập lệnh SQL.
Tại dấu nhắc PSQL, bạn có thể làm:
\connect (or \c) dbname
Bạn có thể chọn cơ sở dữ liệu khi kết nối với psql. Điều này rất hữu ích khi sử dụng nó từ một tập lệnh:
sudo -u postgres psql -c "CREATE SCHEMA test AUTHORIZATION test;" test
\l
cho cơ sở dữ liệu
\c
DatabaseName để chuyển sang db
\df
cho các thủ tục được lưu trữ trong cơ sở dữ liệu cụ thể
Sử dụng lệnh meta của psql \c or \connect [ dbname [ username ] [ host ] [ port ] ] | conninfo
(xem tài liệu ).
Thí dụ: \c MyDatabase
Lưu ý rằng các lệnh \c
và \connect
meta là phân biệt chữ hoa chữ thường .
Sử dụng câu lệnh dưới đây để chuyển sang các cơ sở dữ liệu khác nhau nằm trong RDMS postgreSQL của bạn
\c databaseName
Nếu bạn muốn chuyển sang cơ sở dữ liệu cụ thể khi khởi động, hãy thử
/Applications/Postgres.app/Contents/Versions/9.5/bin/psql vigneshdb;
Theo mặc định, Postgres chạy trên cổng 5432. Nếu nó chạy trên cổng khác, hãy đảm bảo vượt qua cổng trong dòng lệnh.
/Applications/Postgres.app/Contents/Versions/9.5/bin/psql -p2345 vigneshdb;
Bằng một bí danh đơn giản, chúng ta có thể làm cho nó tiện dụng.
Tạo một bí danh trong .bashrc
hoặc.bash_profile
function psql()
{
db=vigneshdb
if [ "$1" != ""]; then
db=$1
fi
/Applications/Postgres.app/Contents/Versions/9.5/bin/psql -p5432 $1
}
Chạy psql
trong dòng lệnh, nó sẽ chuyển sang cơ sở dữ liệu mặc định; psql anotherdb
, nó sẽ chuyển sang db với tên trong đối số, khi khởi động.
Mặc dù không được nêu rõ ràng trong câu hỏi, mục đích là để kết nối với một lược đồ / cơ sở dữ liệu cụ thể.
Một tùy chọn khác là kết nối trực tiếp với lược đồ. Thí dụ:
sudo -u postgres psql -d my_database_name
Nguồn từ 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.
Bạn có thể kết nối bằng
\ c dbname
Nếu bạn muốn xem tất cả các lệnh có thể cho POSTGRESQL hoặc SQL, hãy làm theo các bước sau:
rails dbconsole (Bạn sẽ chuyển hướng đến cơ sở dữ liệu ENV hiện tại của bạn)
\? (Đối với các lệnh POSTGRESQL)
hoặc là
\ h (Đối với các lệnh SQL)
Nhấn Q để thoát
Như đã đề cập trong các câu trả lời khác, bạn cần thay đổi kết nối để sử dụng cơ sở dữ liệu khác.
Postgres làm việc với các lược đồ. Bạn có thể có nhiều sơ đồ trong một cơ sở dữ liệu. Vì vậy, nếu bạn đang làm việc trong cùng một cơ sở dữ liệu và muốn thay đổi lược đồ, Bạn có thể làm:
SET SCHEMA 'schema_name';
SET SCHEMA
được sử dụng là SET SCHEMA 'schema_name'
không SET SCHEMA 'database_name'
. Vì vậy, đây là một cách SQL để thay đổi lược đồ chứ không phải cơ sở dữ liệu. Ngoài ra điều này là tương tự như SET search_path TO schema_name
. Xem tài liệu ở đây hoặc ở đây .
psql
, phần đầu cho PostgreSQL?