Comando "usar nombre de base de datos" en PostgreSQL


Soy principiante en PostgreSQL.

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

Encontré \c databasenamebuscando en Internet, pero solo se ejecuta en psql. Cuando lo pruebo desde el editor de consultas PostgreSQL obtengo un error de sintaxis.

Tengo que cambiar la base de datos mediante pgscripting. ¿Alguien sabe cómo hacerlo?

Author: Erwin Brandstetter, 2012-04-26

5 answers

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

Usando \c en psql cierra la conexión antigua y adquiere una nueva, usando la base de datos y/o credenciales especificadas. Usted consigue un nuevo proceso de back-end y todo.

 281
Author: kgrittn,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-06-05 04:42:09

Debe especificar la base de datos a 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, es posible que vea la siguiente salida

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

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

 164
Author: Eugene,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-09-09 13:48:44

En pgAdmin también puede usar

ESTABLECE search_path A tu_db_name;

 8
Author: Bart De Boeck,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-03-07 15:36:30

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

Para esto, podemos usar el comando SET search_path. 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 archivo postgresql.conf.

 3
Author: VPK,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-11-23 10:42:55

Use este comando cuando se conecte por primera vez a psql

=# psql <databaseName> <usernamePostgresql>
 0
Author: Sukma Saputra,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-09-04 10:08:08