114 votes

Comment se déconnecter d'une base de données et revenir à la base de données par défaut dans PostgreSQL ?

J'utilise la version de PostgreSql :

postgres=# select version();
                           version
-------------------------------------------------------------
 PostgreSQL 9.2.4, compiled by Visual C++ build 1600, 64-bit
(1 row)

Je me suis connecté à une base de données à partir de postgres=# a newdb=# .... Maintenant, je suis dans newdb=# La base de données, je veux la déconnecter et revenir à postgres=# base de données ....

Comment faire ?

J'ai essayé avec disconnect newdb;

mais il donne erroe comme: :

postgres=# create database newdb;
CREATE DATABASE
postgres=# \c newdb;
WARNING: Console code page (437) differs from Windows code page (1252)
         8-bit characters might not work correctly. See psql reference
         page "Notes for Windows users" for details.
You are now connected to database "newdb" as user "postgres".
newdb=# disconnect newdb;
ERROR:  syntax error at or near "disconnect"
LINE 1: disconnect newdb;
        ^
newdb=#

Cela ne fonctionne pas. Y a-t-il une autre façon de faire ou ai-je tort ?

128voto

francs Points 1829

C'est facile, il suffit de regarder l'exemple.

-mes bases de données

postgres=# \l
                               List of databases
   Name    |  Owner   | Encoding | Collate | Ctype |     Access privileges     
-----------+----------+----------+---------+-------+---------------------------
 francs    | postgres | UTF8     | C       | C     | =Tc/postgres             +
           |          |          |         |       | postgres=CTc/postgres    +
           |          |          |         |       | francs=C*T*c*/postgres   +
           |          |          |         |       | select_only=c/francs
 postgres  | postgres | UTF8     | C       | C     | 
 source_db | postgres | UTF8     | C       | C     | =Tc/postgres             +
           |          |          |         |       | postgres=CTc/postgres    +
           |          |          |         |       | source_db=C*T*c*/postgres
 template0 | postgres | UTF8     | C       | C     | =c/postgres              +
           |          |          |         |       | postgres=CTc/postgres
 template1 | postgres | UTF8     | C       | C     | =c/postgres              +
           |          |          |         |       | postgres=CTc/postgres
(5 rows)

-- passer à db francs comme rôle francs

postgres=# \c francs francs
You are now connected to database "francs" as user "francs".

-- passer à la base de données postgres en tant que rôle postgres

francs=> \c postgres postgres

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

-- se déconnecter de la base de données

postgres=# \q

60voto

Hawkez Points 348

Il n'y a pas de "déconnexion" dans psql. Au lieu de vous déconnecter de votre base de données newdb, vous vous connectez à la base de données postgres par défaut.

Créez la nouvelle base de données et connectez-vous à celle-ci :

postgres=# create database newdb;
CREATE DATABASE    
postgres=# \c newdb
You are now connected to database "newdb" as user "postgres".
newdb=#

Liste le nombre de connexions sur newdb :

newdb=# select datname,numbackends from  pg_stat_database where datname='newdb';
 datname | numbackends
---------+-------------
 newdb   |           1

Maintenant, au lieu de se déconnecter, il suffit de se connecter avec la base de données postgres par défaut.

newdb=# \c postgres
You are now connected to database "postgres" as user "postgres".
postgres=#

Maintenant il n'y a plus de connexions sur newdb :

postgres=# select datname,numbackends from  pg_stat_database where datname='newdb';
 datname | numbackends
---------+-------------
 newdb   |           0

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X