更新时间:2026-10-21 GMT+08:00
分享

DROP SCHEMA

功能描述

从数据库中删除指定模式。

注意事项

  • 仅模式的所有者或者被授予了模式DROP权限的用户可以执行DROP SCHEMA命令,当三权分立开关关闭时,系统管理员默认拥有此权限。
  • allow_system_table_mods关闭时,禁止删除DBE_PLDEVELOPER。
  • 仅初始用户可以对系统模式进行DROP操作,其中Public Schema不支持删除。

语法格式

DROP SCHEMA [ IF EXISTS ] schema_name [, ...] [ CASCADE | RESTRICT ];

参数说明

  • IF EXISTS

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

    • 如果指定的模式存在,直接进行DROP操作。
    • 如果指定的模式不存在,则产生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;

相关链接

ALTER SCHEMA,CREATE SCHEMA

相关文档