Can't delete database

2019-01-28 04:26发布

问题:

I'm new to PostgreSQL and am having a problem with what I perceive to be a simple command DROP DATABASE and DROPDB. Why would the following commands not delete my database?

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)

回答1:

You forgot the semicolon ; after the command. Try:

DROP DATABASE clientms;

The incomplete command is also indicated by the prompt: - instead of =. This is to allow multi-line commands.



回答2:

Annoyingly I'd already solved this problem, then encountered it again a year and a bit later and solved it a different way because I didn't notice that I'd already got notes on how to fix it. Here are my notes:

http://www.itsupportforum.net/topic/unable-to-delete-drop-postgresql-database/

In summary, I couldn't delete the db because it was in use by the interface I was using to delete it. Dumb.



回答3:

Apparently destroydb clientms works (took me a lot of digging though) [link]