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?



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.


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.



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.


4

Use este comando cuando se conecte por primera vez psql

=# psql <databaseName> <usernamePostgresql>
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.