Skip to main content
The DROP DATABASE removes a database and all its objects from a CockroachDB cluster.
The “ statement performs a schema change. For more information about how online schema changes work in CockroachDB, see .

Required privileges

The user must have the DROP on the database and on all tables in the database.

Synopsis

drop_database syntax diagram

Parameters

ParameterDescription
IF EXISTSDrop the database if it exists; if it does not exist, do not return an error.
nameThe name of the database you want to drop. You cannot drop a database if it is set as the or if .
CASCADE(Default) Drop all tables and views in the database as well as all objects (such as and ) that depend on those tables.

CASCADE does not list objects it drops, so should be used cautiously.
RESTRICTDo not drop the database if it contains any or .

Viewing schema changes

This schema change statement is registered as a job. You can view long-running jobs with .

Examples

Setup

To follow along, run to start a temporary, in-memory cluster with the sample dataset preloaded:

Drop a database and its objects (CASCADE)

For non-interactive sessions (e.g., client applications), DROP DATABASE applies the CASCADE option by default, which drops all tables and views in the database as well as all objects (such as and ) that depend on those tables. For interactive sessions from the , either the CASCADE option must be set explicitly or the --unsafe-updates flag must be set when starting the shell.

Prevent dropping a non-empty database (RESTRICT)

When a database is not empty, the RESTRICT option prevents the database from being dropped:

See also