
# DROP DATABASE
#### 功能描述
删除数据库。
#### 注意事项
- 只有数据库所有者有权限执行DROP DATABASE命令，系统管理员默认拥有此权限。
- 不能对系统默认安装的三个数据库（gaussdb、TEMPLATE0和TEMPLATE1）执行删除操作，系统做了保护。如果想查看当前服务中有哪几个数据库，可以用gsql的\\l命令查看。
- 如果有用户正在与要删除的数据库连接，则删除操作失败。如果要查看当前存在哪些数据库连接，可以通过视图v$session查看。
- 不能在事务块中执行DROP DATABASE命令。
- 如果执行DROP DATABASE失败，事务回滚，需要再次执行一次DROP DATABASE IF EXISTS。
- DROP DATABASE若提示database is being accessed by other users类错误，可能原因为CLEAN CONNECTION过程存在线程无法及时响应信号，出现连接清理不完全的情况，需要再次执行CLEAN CONNECTION。
![](https://support.huaweicloud.com/sqlreference-911-dws/public_sys-resources/danger_3.0-zh-cn.png)
- **DROP对象**操作（如DATABASE、USER/ROLE、SCHEMA、TABLE、VIEW等对象）存在数据丢失风险，尤其含带CASCADE级联删除场景，会将关联的对象一并删除，操作需谨慎，操作前需考虑数据备份。
- 更多开发设计规范参见[总体开发设计规范](https://support.huaweicloud.com/devg-dws/dws_04_0075.html)。
 
#### 语法格式
```
DROP DATABASE [ IF EXISTS ] database_name ;
```
#### 参数说明
表1参数说明 
| 参数            | 描述                       | 取值范围       |
|:---|:---|:---|
| IF EXISTS     | 如果指定的数据库不存在时返回一个提示而不是错误。 | -          |
| database_name | 需要删除的数据库名称。              | 已存在的数据库名称。 |
   
#### 示例
删除名称为music的数据库。如删除数据库失败，请参见[常见问题]处理。
```
DROP DATABASE IF EXISTS music;
```
#### 相关链接
[CREATE DATABASE](https://support.huaweicloud.com/sqlreference-911-dws/dws_06_0156.html)，[ALTER DATABASE](https://support.huaweicloud.com/sqlreference-911-dws/dws_06_0120.html)
 #### 常见问题
当执行DROP DATABASE语法时出现以下类似报错，表示待删除数据库被其他用户连接。
```
database "mysql_compatible_db" is being accessed by other users Detail: There are 2 other sessions using the database.
```
可执行以下语法，先断开所有用户对该数据库建立的连接。
```
CLEAN CONNECTION TO ALL FORCE FOR DATABASE mysql_compatible_db;
```
再重新执行DROP DATABASE，可删除成功（如删除失败，可以重复执行以上CLEAN CONNECTION再重试）。
```
DROP DATABASE mysql_compatible_db;
```
