
# DROP SCHEMA
#### 功能描述
从数据库中删除模式。
#### 注意事项
- 只有Schema的所有者或者被授予了模式DROP权限的用户有权限执行DROP SCHEMA命令，当三权分立开关关闭时，系统管理员默认拥有此权限。
- 除初始用户和运维管理员外，其他用户无法DROP掉运维管理员的SCHEMA。
- allow_system_table_mods关闭时，禁止删除DBE_PLDEVELOPER。
- 对于系统模式，仅有初始用户有权限删除。
 
#### 语法格式
```
DROP SCHEMA [ IF EXISTS ] schema_name [, ...] [ CASCADE | RESTRICT ];
```
![](https://support.huaweicloud.com/distributed-devg-v8-gaussdb/figure/zh-cn_image_0000002558057243.png "点击放大")
#### 参数说明
- **IF EXISTS**
  如果指定的模式不存在，发出一个notice而不是抛出一个错误。
  
- **schema_name**
  模式的名称。
  取值范围：已存在模式名。
  
- **CASCADE \| RESTRICT**
  - CASCADE：自动删除包含在模式中的对象。
  
  - RESTRICT：如果模式包含任何对象，则删除失败（缺省行为）。
   
![](https://support.huaweicloud.com/distributed-devg-v8-gaussdb/public_sys-resources/notice_3.0-zh-cn.png)
不要随意删除pg_temp或pg_toast_temp开头的模式，这些模式是系统内部使用的，如果删除，可能导致无法预知的结果。
![](https://support.huaweicloud.com/distributed-devg-v8-gaussdb/public_sys-resources/note_3.0-zh-cn.png)
无法删除当前模式。如果要删除当前模式，须切换到其他模式下。
#### 示例
```
--创建角色role2。
gaussdb=# CREATE ROLE role2 IDENTIFIED BY '********';
--根据名称创建schema。
gaussdb=# CREATE SCHEMA schema1 AUTHORIZATION role2;
CREATE SCHEMA
--删除schema。
gaussdb=# DROP SCHEMA schema1 CASCADE;
--删除用户。
gaussdb=# DROP USER role2 CASCADE;
```
#### 相关链接
[ALTER SCHEMA](https://support.huaweicloud.com/distributed-devg-v8-gaussdb/gaussdb-12-0503.html#ZH-CN_TOPIC_0000002559105881)，[CREATE SCHEMA](https://support.huaweicloud.com/distributed-devg-v8-gaussdb/gaussdb-12-0562.html#ZH-CN_TOPIC_0000002558946021)。
