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)
You forgot the semicolon
;
after the command. Try:The incomplete command is also indicated by the prompt:
-
instead of=
. This is to allow multi-line commands.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.
Apparently
destroydb clientms
works (took me a lot of digging though) [link]