问题
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]
来源:https://stackoverflow.com/questions/10912697/cant-delete-database