Команда "use database_name" в PostgreSQL

Я начинаю с PostgreSQL.

Я хочу подключиться к другой базе данных из редактора запросов Postgres - например, команды USE для MySQL или MS SQL Server.

Я нашел \c databasename, выполнив поиск в Интернете, но работает только на psql. Когда я пытаюсь использовать его в редакторе запросов PostgreSQL, я получаю синтаксическую ошибку.

Мне нужно изменить базу данных с помощью pgscripting. Кто-нибудь знает, как это сделать?

Ответ 1

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

Использование \c в psql закрывает старое соединение и приобретает новый, используя указанную базу данных и/или учетные данные. Вы получаете совершенно новый интерфейс и все.

Ответ 2

Вы должны указать базу данных для использования при подключении; если вы хотите использовать psql для своего script, вы можете использовать "\ c name_database"

user_name=# CREATE DATABASE testdatabase; 
user_name=# \c testdatabase 

В этот момент вы можете увидеть следующий вывод

You are now connected to database "testdatabase" as user "user_name".
testdatabase=#

Обратите внимание, как изменяется запрос. Cheers, просто торопились в поисках этого слишком, слишком мало информации о postgreSQL по сравнению с MySQL, а остальное на мой взгляд.

Ответ 3

В pgAdmin вы также можете использовать

SET search_path TO your_db_name;

Ответ 4

Основная проблема при миграции из MySQL, с которой я столкнулся, заключалась в том, что термин database тоже был таким же в PostgreSQL, но это не так. Поэтому, если мы собираемся переключить базу данных из нашего приложения или pgAdmin, результат будет не таким, как ожидалось. Как и в моем случае, у нас есть отдельные схемы (учитывая терминологию PostgreSQL здесь.) Для каждого клиента и отдельную схему администратора. Поэтому в приложении мне нужно переключаться между схемами.

Для этого мы можем использовать команду SET search_path. Это переключает текущую схему на указанное имя схемы для текущего сеанса.

Пример:

SET search_path = different_schema_name;

Это изменяет current_schema на указанную схему для сеанса. Чтобы изменить его навсегда, мы должны внести изменения в файл postgresql.conf.