# DROP DATABASE
#### 功能描述
删除一个数据库。
#### 注意事项
- 仅数据库所有者或者被授予了数据库DROP权限的用户可以执行该操作，系统管理员默认拥有此权限。
- 无法对系统默认安装的模板数据库和用户数据库（template0、template1、templatea、templatem和postgres）执行删除操作。如果需要查看当前服务中存在的数据库，可以使用gsql的\\l命令进行查看。
- 当需要删除的数据库存在用户连接时，将无法成功删除数据库。可以通过视图DV_SESSIONS查看当前数据库的连接状态。
- 不能在事务块中执行该操作。
- 确定删除数据库前，需要执行"CLEAN CONNECTION TO ALL FORCE FOR DATABASE XXXX;"命令，用于强制停止当前已有的用户连接及后台线程，防止因为存在后台线程未完全退出而导致删除操作失败问题。
  ![](https://support.huaweicloud.com/distributed-ref-v10-gaussdb/public_sys-resources/notice_3.0-zh-cn.png)
  DROP DATABASE一旦执行将无法撤销，请谨慎使用。强制停止后台线程可能导致当前数据库数据一致性问题，"CLEAN CONNECTION TO ALL FORCE FOR DATABASE XXXX;"仅在确定删除数据库阶段执行。
  
- 如果执行DROP DATABASE失败，事务回滚，需要再次执行一次DROP DATABASE IF EXISTS操作。
 
#### 语法格式
```
DROP DATABASE [ IF EXISTS ] database_name;
```
![](https://support.huaweicloud.com/distributed-ref-v10-gaussdb/figure/zh-cn_image_0000002793788261.png "点击放大")
#### 参数说明
- **IF EXISTS**
  判断指定的数据库是否存在，使用该参数可以避免出现报错。
  - 如果指定的数据库存在，则成功删除。
  
  - 如果指定的数据库不存在，不会进行删除操作，仅产生一个NOTICE提示，用于告知指定的数据库不存在。
   
- **database_name**
  指定删除的数据库名称。
  取值范围：字符串，已存在的数据库名称。
  
 
#### 示例
```
--创建数据库。
gaussdb=# CREATE DATABASE testdb1;
--删除数据库。
gaussdb=# DROP DATABASE testdb1;
```
#### 相关链接
[CREATE DATABASE](https://support.huaweicloud.com/distributed-ref-v10-gaussdb/gaussdb-08-0243.html)
