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

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

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

886
задан 16 окт. '10 в 20:09
источник поделиться
12 ответов

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

\connect DBNAME

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

\c DBNAME
1370
ответ дан 16 окт. '10 в 20:12
источник

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

171
ответ дан 16 окт. '10 в 20:14
источник

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

\connect (or \c) dbname
88
ответ дан 16 окт. '10 в 20:14
источник

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

\c dbname
22
ответ дан 10 нояб. '16 в 11:32
источник

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

sudo -u postgres psql -c "CREATE SCHEMA test AUTHORIZATION test;" test
22
ответ дан 25 июля '14 в 15:36
источник

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

Пример: \c MyDatabase

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

9
ответ дан 22 окт. '15 в 3:52
источник

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

8
ответ дан 26 февр. '16 в 10:10
источник

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

\c databaseName
6
ответ дан 13 июня '16 в 11:12
источник

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

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

1
ответ дан 13 июня '18 в 18:47
источник

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

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

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.
0
ответ дан 13 сент. '18 в 7:51
источник

SQL позволяет вам определять базу данных в запросе. Так почему бы просто не использовать?

SELECT 
 *
FROM 
 database.table 

Тогда вам никогда не придется "выбирать" базу данных "вручную"

Или пример кросс-базы данных JOIN

SELECT 
 *
FROM 
 world.country
INNER JOIN 
 cms.user 
ON
 country.id = user.country_id
0
ответ дан 16 янв. '19 в 16:39
источник

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

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

SET SCHEMA 'schema_name';

-9
ответ дан 11 февр. '15 в 20:43
источник

Другие вопросы по меткам или Задайте вопрос