DROP DATABASE

Name

DROP DATABASE -- Removes a database from the system.

Synopsis

DROP DATABASE name

Parameters

name

The name of the database you wish to remove.

Results

DROP DATABASE

The message returned when a database is dropped correctly.

ERROR: user 'username' is not allowed to create/drop databases

The error returned if you attempt to drop a database with a PostgreSQL user that does not have superuser privileges. You must have a user that was created with the CREATEDB privilege to drop databases. See CREATE USER" for more about this.

ERROR: dropdb: cannot be executed on the template database

The error returned if you attempt to drop the template1 database. This database cannot be dropped; it is a system database.

ERROR: dropdb: cannot be executed on an open database

The error returned if you attempt to drop a database to which you are currently connected. If you get this error, try connecting to the template1 database and then issuing the command to drop the database on which you were previously working.

ERROR: dropdb: database 'name' does not exist

The error returned if the database you are trying to delete does not exist.

ERROR: dropdb: database 'name' is not owned by you

The error returned if you attempt to delete a database that you do not own.

ERROR: dropdb: May not be called in a transaction block

The error returned if you attempt to issue the DROP DATABASE command from within a transaction block. You must finish any current transaction before dropping a database.

NOTICE: The database directory 'directory' could not be removed

The notice message displayed if the dropped database's data directory could not be removed. You will have to delete the data directory manually in order to complete the drop.

Description

Use the DROP DATABASE command to remove a database from the system. All data and catalog entries for the database are deleted when you drop a database. Attempting to use this command on a database you are currently connected to will result in an error; for this reason it may be more convenient to use the dropdb shell script.

Note: Only the owner \, or a superuser, may drop a database.

Examples

The following example permanently removes the testdb database:

template1=# DROP DATABASE testdb;
DROP