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?

sam
fonte
Possível duplicata de Como alternar bancos de dados no psql?
AlikElzin-kilaka 13/09
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.

kgrittn
fonte
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.

Eugene
fonte
25

No pgAdmin você também pode usar

AJUSTE o caminho da pesquisa PARA o seu_db_name;

Bart De Boeck
fonte
Funcionou graças
YouAreAwesome
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.

VPK
fonte
4

Use esse commad quando conectar pela primeira vez ao psql

=# psql <databaseName> <usernamePostgresql>
Sukma Saputra
fonte