Comando "use database_name" en PostgreSQL

366

Soy principiante en PostgreSQL.

Quiero conectarme a otra base de datos desde el editor de consultas de Postgres, como el USEcomando de MySQL o MS SQL Server.

Lo encontré \c databasenamebuscando en Internet, pero solo se ejecuta en psql . Cuando lo intento desde el editor de consultas PostgreSQL me sale un error de sintaxis.

Tengo que cambiar la base de datos mediante pgscripting. Alguien sabe como hacerlo?

sam
fuente
Posible duplicado de ¿Cómo cambiar las bases de datos en psql?
AlikElzin-kilaka
Otra opción es conectarse directamente al esquema. Ejemplo: sudo -u postgres psql -d my_database_name. Fuente
AlikElzin-kilaka

Respuestas:

382

Cuando obtienes una conexión PostgreSQL, siempre es a una base de datos particular. Para acceder a una base de datos diferente, debe obtener una nueva conexión.

El uso \cen psql cierra la conexión anterior y adquiere una nueva, utilizando la base de datos y / o credenciales especificadas. Obtiene un proceso de fondo completamente nuevo y todo.

kgrittn
fuente
Gracias kgrittn por su valiosa orientación. ¿Puede decirme cómo puedo hacer una nueva conexión a la base de datos y cerrar la anterior utilizando la consulta pgscript?
Sam
No estoy familiarizado con pgscript. Si ese es un idioma en el que escribes funciones, la respuesta es que no se puede hacer. ¿Quizás debería considerar poner tablas en diferentes esquemas en lugar de diferentes bases de datos ?
kgrittn
2
Una consulta no puede cambiar la base de datos en PostgreSQL.
kgrittn
Gracias kgrittn por toda su ayuda .. :)
sam
8
Si no me equivoco, las bases de datos en MySQL son más parecidas a los esquemas en PostgreSQL; puede cambiar entre ellos, pero los DB en PostgreSQL son un juego de pelota completamente diferente.
mpen
213

Debe especificar la base de datos para usar en connect; si desea usar psql para su script, puede usar "\ c name_database"

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

En este punto, puede ver el siguiente resultado

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

Observe cómo cambia la solicitud. Saludos, también he estado buscando esto, muy poca información sobre postgreSQL en comparación con MySQL y el resto en mi opinión.

Eugene
fuente
25

En pgAdmin también puedes usar

SET search_path TO your_db_name;

Bart De Boeck
fuente
Funcionó gracias
YouAreAwesome
9

El problema básico al migrar desde MySQL que enfrenté fue, pensé que el término también databasesería el mismo en PostgreSQL, pero no lo es. Entonces, si vamos a cambiar la base de datos de nuestra aplicación o pgAdmin, el resultado no sería el esperado. Como en mi caso, tenemos esquemas separados (teniendo en cuenta la terminología de PostgreSQL aquí) para cada cliente y un esquema de administración separado. Entonces, en la aplicación, tengo que cambiar entre esquemas.

Para esto, podemos usar el SET search_pathcomando. Esto cambia el esquema actual al nombre de esquema especificado para la sesión actual.

ejemplo:

SET search_path = different_schema_name;

Esto cambia el current_schema al esquema especificado para la sesión. Para cambiarlo permanentemente, tenemos que hacer cambios en el postgresql.confarchivo.

VPK
fuente
4

Use este comando cuando se conecte por primera vez psql

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