DROP DATABASE

Name

DROP DATABASE — 删除一个现有数据库.
DROP DATABASE name
  

输入

name

要被删除的现有数据库名.

输出

DROP DATABASE

如果命令成功执行,返回此命令.

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

要删除数据库你必须有特殊的 CREATEDB 权限。 参阅 CREATE USER

ERROR: dropdb: cannot be executed on the template database

template1 数据库不能被删除。它和你无关。

ERROR: dropdb: cannot be executed on an open database

无法与你要删除的数据库建立联接。 你可以与 template1 或者任何其他数据库联接然后再次运行这条命令。

ERROR: dropdb: database 'name' does not exist

如果声明的数据库不存在,返回此信息.

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

你必须是数据库所有者。数据库所有者通常也意味着你是创建者。

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

执行这条命令之前你必须先结束正在处理的事务。

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

数据库被删除了(否则会有其他错误信息), 但是存储数据的目录无法删除。你必须手工删除之。

描述

DROP DATABASE 删除一个现存数据库的目录入口并且删除包含数据的目录. 只有数据库所有者能够执行这条命令(通常也是数据库创建者).

注意

这条命令在和目标数据库联接时不能执行. 通常更好的做法是用 dropdb, 脚本代替,该脚本是此命令的一个封装。

请参考 CREATE DATABASE 语句获取如何创建数据库的信息.

兼容性

SQL92

DROP DATABASE 是一个 Postgres 语言的扩展. 在 SQL92 中没有这条命令.