更新时间:2026-02-06 GMT+08:00
分享

DROP DATABASE

功能描述

删除一个数据库。

注意事项

  • 仅数据库所有者或者被授予了数据库DROP权限的用户可以执行该操作,系统管理员默认拥有此权限。
  • 无法对系统默认安装的模板数据库和用户数据库(template0、template1、templatea、templatem和postgres)执行删除操作。如果需要查看当前服务中存在的数据库,可以用gsql的\l命令进行查看。
  • 当需要删除的数据库存在用户连接时,将无法成功删除数据库。可以通过视图DV_SESSIONS查看当前数据库的连接状态。
  • 不能在事务块中执行该操作。
  • 确定删除数据库前需要执行“CLEAN CONNECTION TO ALL FORCE FOR DATABASE XXXX;”命令,用于强制停止当前已有的用户连接及后台线程,防止因为存在后台线程未完全退出而导致删除操作失败问题。

    DROP DATABASE一旦执行将无法撤销,请谨慎使用。强制停止后台线程可能导致当前数据库数据一致性问题,“CLEAN CONNECTION TO ALL FORCE FOR DATABASE XXXX;”仅在确定删除数据库阶段执行。

  • 如果执行DROP DATABASE失败,事务回滚,需要再次执行一次DROP DATABASE IF EXISTS操作。

语法格式

1
DROP DATABASE [ IF EXISTS ] database_name;

参数说明

  • IF EXISTS

    判断指定的数据库是否存在,使用该参数可以避免出现报错。

    • 如果指定的数据库存在,则成功删除。
    • 如果指定的数据库不存在,不会进行删除操作,仅产生一个NOTICE提示,用于告知指定的数据库不存在。
  • database_name

    指定删除的数据库名称。

    取值范围:字符串,已存在的数据库名称。

示例

--创建数据库。
gaussdb=# CREATE DATABASE testdb1;

--删除数据库。
gaussdb=# DROP DATABASE testdb1;

相关链接

CREATE DATABASE

相关文档