Comando "use database_name" no PostgreSQL


366

Eu sou iniciante no PostgreSQL.

Quero me conectar a outro banco de dados a partir do editor de consultas do Postgres - como o USEcomando do MySQL ou MS SQL Server.

Encontrei \c databasenamepesquisando na Internet, mas ele roda apenas no psql . Quando o tento no editor de consultas do PostgreSQL, recebo um erro de sintaxe.

Eu tenho que mudar o banco de dados por pgscripting. Alguém sabe como fazer isso?



Outra opção é conectar-se diretamente ao esquema. Exemplo: sudo -u postgres psql -d my_database_name. Fonte
AlikElzin-kilaka

Respostas:


382

Quando você obtém uma conexão PostgreSQL, é sempre para um banco de dados específico. Para acessar um banco de dados diferente, você deve obter uma nova conexão.

O uso \cno psql fecha a conexão antiga e adquire uma nova, usando o banco de dados e / ou credenciais especificados. Você obtém um novo processo de back-end e tudo mais.


Obrigado kgrittn por sua valiosa orientação. Você pode me dizer como posso fazer nova conexão com o banco de dados e fechar anterior usando a consulta pgscript?
28412 Sam

Eu não estou familiarizado com pgscript. Se esse é um idioma no qual você escreve funções, a resposta é que isso não pode ser feito. Talvez você deva considerar colocar tabelas em esquemas diferentes em vez de bancos de dados diferentes ?
kgrittn

2
Uma consulta não pode alterar o banco de dados no PostgreSQL.
precisa saber é o seguinte

Obrigado kgrittn por toda a sua ajuda .. :)
sam

8
Se não me engano, os bancos de dados no MySQL são mais parecidos com os esquemas no PostgreSQL - você pode alternar entre eles, mas os bancos de dados no PostgreSQL são um jogo totalmente diferente.
MPEN

213

Você deve especificar o banco de dados a ser usado na conexão; se você quiser usar o psql para o seu script, poderá usar "\ c name_database"

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

Nesse ponto, você pode ver a seguinte saída

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

Observe como o prompt muda. Saúde, acabei de procurar por isso também, com poucas informações sobre o postgreSQL em comparação com o MySQL e o restante na minha opinião.



9

O problema básico ao migrar do MySQL que eu enfrentei foi que eu pensei que o termo databasefosse o mesmo no PostgreSQL também, mas não é. Portanto, se vamos mudar o banco de dados de nosso aplicativo ou pgAdmin, o resultado não seria o esperado. Como no meu caso, temos esquemas separados (considerando a terminologia do PostgreSQL aqui.) Para cada cliente e esquema administrativo separado. Então, na aplicação, eu tenho que alternar entre esquemas.

Para isso, podemos usar o SET search_pathcomando Isso muda o esquema atual para o nome do esquema especificado para a sessão atual.

exemplo:

SET search_path = different_schema_name;

Isso altera o current_schema para o esquema especificado para a sessão. Para alterá-lo permanentemente, temos que fazer alterações no postgresql.confarquivo.


4

Use esse commad quando conectar pela primeira vez ao psql

=# psql <databaseName> <usernamePostgresql>
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.