Как переключать базы данных в psql?

В MySQL я использовал use database_name;

Что эквивалентно psql?

Ответ 1

В PostgreSQL вы можете использовать мета-команду \connect клиентского инструмента psql:

\connect DBNAME

или короче говоря:

\c DBNAME

Ответ 2

Вы можете подключиться к базе данных с помощью \c <database> или \connect <database>.

Ответ 3

В командной строке PSQL вы можете:

\connect (or \c) dbname

Ответ 4

Вы можете подключиться с помощью

\c dbname

Ответ 5

Вы можете выбрать базу данных при подключении с помощью psql. Это удобно при использовании с script:

sudo -u postgres psql -c "CREATE SCHEMA test AUTHORIZATION test;" test

Ответ 6

Использование мета-команды psql \c or \connect [ dbname [ username ] [ host ] [ port ] ] | conninfo (см. документация).

Пример: \c MyDatabase

Обратите внимание, что мета-команды \c и \connect case-sensitive.

Ответ 7

\l для баз данных \c DatabaseName для переключения на db \df для процедур, хранящихся в конкретной базе данных

Ответ 8

Используйте оператор ниже для переключения на различные базы данных, находящиеся в вашей RDMS postgreSQL

\c databaseName

Ответ 9

Если вы хотите переключиться на конкретную базу данных при запуске, попробуйте

/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, при запуске он переключится на базу данных с именем в аргументе.

Ответ 10

Хотя это явно не указано в вопросе, цель состоит в том, чтобы подключиться к конкретной схеме/базе данных.

Другой вариант - напрямую подключиться к схеме. Пример:

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.

Ответ 11

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.

Ответ 12

Вы можете подключиться с помощью

\c dbname

Если вы хотите увидеть все возможные команды для POSTGRESQL или SQL, выполните следующие действия:

  1. rails dbconsole (Вы будете перенаправлены в вашу текущую базу данных ENV)

  2. \? (Для команд POSTGRESQL)

или же

  1. \h (для команд SQL)

  2. Нажмите Q для выхода

Ответ 13

Вы также можете подключиться к базе данных с другой ролью следующим образом.

\connect DBNAME ROLENAME;

или же

\c DBNAME ROLENAME;

Ответ 14

Как уже упоминалось в других ответах, вам нужно изменить соединение, чтобы использовать другую базу данных.

Postgres работает со схемами. Вы можете иметь несколько схем в одной базе данных. Итак, если вы работаете в одной базе данных и хотите изменить схему, вы можете:

SET SCHEMA 'schema_name';