Вопрос по postgresql – Команда «использовать имя_базы_данных» в PostgreSQL

292

Я новичок в PostgreSQL.

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

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

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

Другой вариант - напрямую подключиться к схеме. Пример:sudo -u postgres psql -d my_database_name. Source AlikElzin-kilaka
Возможный дубликатHow to switch databases in psql? AlikElzin-kilaka

Ваш Ответ

5   ответов
183

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

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

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

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

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

6

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

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

example:

SET search_path = different_schema_name;

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

14

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

SET search_path TO your_db_name;

0

Используйте эту запятую при первом подключении кpsql

=# psql <databaseName> <usernamePostgresql>
312

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

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

Запрос не может изменить базу данных в PostgreSQL.
Я не знаком с pgscript. Если это язык, на котором вы пишете функции, ответ заключается в том, что это невозможно. Может быть, вы должны рассмотреть вопрос о размещении таблиц в разныхschemas вместо разныхdatabases?
Если я не ошибаюсь, базы данных в MySQL больше похожи на схемы в PostgreSQL - вы можете переключаться между ними, но базы данных в PostgreSQL - это совершенно другая игра.
Спасибо. Мы можем написать простой запрос для изменения базы данных ??? Как? sam
Спасибо kgrittn за ваше ценное руководство. Можете ли вы сказать мне, как я могу установить новое соединение с базой данных и закрыть предыдущее с помощью запроса pgscript? sam

Похожие вопросы