В MySQL я использовал use database_name;
Что эквивалентно psql?
В MySQL я использовал use database_name;
Что эквивалентно psql?
В PostgreSQL вы можете использовать мета-команду \connect
клиентского инструмента psql:
\connect DBNAME
или короче говоря:
\c DBNAME
Вы можете подключиться к базе данных с помощью \c <database>
или \connect <database>
.
В командной строке PSQL вы можете:
\connect (or \c) dbname
Вы можете подключиться с помощью
\c dbname
Вы можете выбрать базу данных при подключении с помощью psql. Это удобно при использовании с script:
sudo -u postgres psql -c "CREATE SCHEMA test AUTHORIZATION test;" test
Использование мета-команды psql \c or \connect [ dbname [ username ] [ host ] [ port ] ] | conninfo
(см. документация).
Пример: \c MyDatabase
Обратите внимание, что мета-команды \c
и \connect
case-sensitive.
\l
для баз данных
\c
DatabaseName для переключения на db
\df
для процедур, хранящихся в конкретной базе данных
Используйте оператор ниже для переключения на различные базы данных, находящиеся в вашей RDMS postgreSQL
\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
, при запуске он переключится на базу данных с именем в аргументе.
Хотя это явно не указано в вопросе, цель состоит в том, чтобы подключиться к конкретной схеме/базе данных.
Другой вариант - напрямую подключиться к схеме. Пример:
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.
SQL позволяет вам определять базу данных/схему в запросе. Так почему бы просто не использовать?
SELECT
*
FROM
database.table
Тогда вам никогда не придется "выбирать" базу данных "вручную"
Или пример кросс-базы данных/схемы JOIN
SELECT
*
FROM
world.country
INNER JOIN
cms.user
ON
country.id = user.country_id
WHERE
country.isoCode = '<isoCode>'
Имейте в виду, что для работы базы данных/схемы должны находиться на одном физическом сервере PostgreSQL.
Вы можете подключиться с помощью
\c dbname
Если вы хотите увидеть все возможные команды для POSTGRESQL или SQL, выполните следующие действия:
rails dbconsole (Вы будете перенаправлены в вашу текущую базу данных ENV)
\? (Для команд POSTGRESQL)
или же
\h (для команд SQL)
Нажмите Q для выхода
Вы также можете подключиться к базе данных с другой ролью следующим образом.
\connect DBNAME ROLENAME;
или же
\c DBNAME ROLENAME;
Как уже упоминалось в других ответах, вам нужно изменить соединение, чтобы использовать другую базу данных.
Postgres работает со схемами. Вы можете иметь несколько схем в одной базе данных. Итак, если вы работаете в одной базе данных и хотите изменить схему, вы можете:
SET SCHEMA 'schema_name';