更新时间:2026-02-06 GMT+08:00
DROP SCHEMA
功能描述
从数据库中删除指定模式。
注意事项
- 仅模式的所有者或者被授予了模式DROP权限的用户可以执行DROP SCHEMA命令,当三权分立开关关闭时,系统管理员默认拥有此权限。
- 仅初始用户和运维管理员可以对运维管理员的Schema进行DROP操作。
- allow_system_table_mods关闭时,禁止删除DBE_PLDEVELOPER。
- 仅初始用户可以对系统模式进行DROP操作。
语法格式
DROP SCHEMA [ IF EXISTS ] schema_name [, ...] [ CASCADE | RESTRICT ];

参数说明
- IF EXISTS
判断指定的模式是否存在。
- 如果指定的模式存在,则删除成功。
- 如果指定的模式不存在,不会进行删除操作,仅产生一个NOTICE提示,用于告知指定的模式不存在。
- schema_name
模式的名称。
取值范围:已存在模式名。
- CASCADE | RESTRICT
可选,是否级联删除依赖于该模式的对象。未指定时,默认为RESTRICT。
- CASCADE:级联删除包含在模式中的对象。
- RESTRICT:如果模式包含任何对象,则删除失败。
- 请勿随意对pg_temp或pg_toast_temp开头的模式进行DROP操作,该模式为系统内部使用,删除后可能导致无法预知的结果。
- 无法直接对当前模式进行DROP操作,如果需要删除当前模式,请切换至其他模式后再指定删除当前模式。
示例
--创建角色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;
相关链接
父主题: D