8
votes

Impossible de supprimer la base de données

Je suis nouveau à PostgreSQL et j'ai un problème avec ce que je percevoir d'être une simple commande Drop Drop code> et dropdb code>. Pourquoi les commandes suivantes ne suppriment-elles pas ma base de données?

postgres=# drop database clientms
postgres-# \l
                                    List of databases
   Name    |    Owner     | Encoding |   Collate   |    Ctype    |   Access privileges   
-----------+--------------+----------+-------------+-------------+-----------------------
 clientms  | clientmsuser | UTF8     | en_GB.UTF-8 | en_GB.UTF-8 | 
 postgres  | postgres     | UTF8     | en_GB.UTF-8 | en_GB.UTF-8 | 
 template0 | postgres     | UTF8     | en_GB.UTF-8 | en_GB.UTF-8 | =c/postgres          +
           |              |          |             |             | postgres=CTc/postgres
 template1 | postgres     | UTF8     | en_GB.UTF-8 | en_GB.UTF-8 | =c/postgres          +
           |              |          |             |             | postgres=CTc/postgres
(4 rows)

postgres-# dropdb clientms
postgres-# \l
                                    List of databases
   Name    |    Owner     | Encoding |   Collate   |    Ctype    |   Access privileges   
-----------+--------------+----------+-------------+-------------+-----------------------
 clientms  | clientmsuser | UTF8     | en_GB.UTF-8 | en_GB.UTF-8 | 
 postgres  | postgres     | UTF8     | en_GB.UTF-8 | en_GB.UTF-8 | 
 template0 | postgres     | UTF8     | en_GB.UTF-8 | en_GB.UTF-8 | =c/postgres          +
           |              |          |             |             | postgres=CTc/postgres
 template1 | postgres     | UTF8     | en_GB.UTF-8 | en_GB.UTF-8 | =c/postgres          +
           |              |          |             |             | postgres=CTc/postgres
(4 rows)


4 Réponses :


29
votes

Vous avez oublié le point-virgule ; après la commande. Essayez: xxx

La commande incomplète est également indiquée par l'invite: - au lieu de = . Ceci est pour permettre des commandes multilignes.


3 commentaires

Ouais! Les gens laissent beaucoup sur les messages sur le sujet que j'ai vu :(


Selon le client, le point-virgule peut ne pas être requis pour une seule commande. C'est nécessaire dans la PSQL interactif cependant.


Vous pouvez utiliser -s ou --Single-ligne pour vous débarrasser du point-virgule requis.



0
votes

Apparemment Les clients destructdb WORKS (m'a pris beaucoup de creusage) [link]


2 commentaires

Aucune telle commande. Je suppose que vous voulez dire drotherdb , qui est l'ancienne forme de l'outil de ligne de commande de jour moderne DROPDB .


La différence est que drotherdb (ou plutôt, la ligne de commande dropdb outil) ne fonctionne pas sur l'invite psql , mais via un Unix Shell ou Windows 'cmd.exe. Les commandes sur les coquilles UNIX et CMD.EXE sont terminées par une nouvelle ligne, pas un point-virgule, vous avez donc réellement exécuté la commande lorsque vous travaillez sur une coquille.



1
votes

Adaptinant, j'avais déjà résolu ce problème, puis la rencontrait encore une année et un peu plus tard et résolu de la manière différente, car je n'ai pas remarqué que j'avais déjà reçu des notes sur la manière de le réparer. Voici mes notes:

http://www.itsupportforum.net/ Sujet / Impossible-Delete-Drop-PostgreSQL-Base de données /

En résumé, je ne pouvais pas supprimer le DB car il était utilisé par l'interface que j'utilisais pour la supprimer. Dumb.


1 commentaires

Un lien vers une solution est la bienvenue, mais assurez-vous que votre réponse est utile sans elle - Citez la partie la plus pertinente de la solution de la page que vous connectez, au cas où la page cible n'est pas disponible. Les réponses qui sont peu plus qu'une liaison peuvent être supprimées.



1
votes

avec pgadmin: Vérifiez si vous êtes connecté avec serveur, accédez à votre base de données et cliquez dessus avec le bouton droit de la souris et déposez la base de données. Actualisez la base de données ou re-ouvrez le serveur à nouveau!

le faire manuellement: xxx


0 commentaires