DROP SCHEMA

适用于:已勾选 Databricks SQL 已勾选 Databricks Runtime

删除架构,然后从文件系统中删除与架构关联的目录。 如果系统中不存在该架构,则会引发异常。

虽然使用 SCHEMADATABASE 是可互换的,但最好使用 SCHEMA

Permissions

若要在 Unity 目录中删除架构,你必须对 MANAGE 架构或其所有者 USE SCHEMA 以及架构所在的目录具有 USE CATALOG 权限。

根据 对象层次结构,父目录的所有者和具有 MANAGE 父目录的用户也可以执行此操作。

语法

DROP SCHEMA [ IF EXISTS ] schema_name [ RESTRICT | CASCADE ]

参数

  • 如果存在

    如果已指定此项,则当架构不存在时,不会引发异常。

  • schema_name

    系统中现有架构的名称。 如果该名称不存在,则会抛出异常。

  • 限制

    如果已指定此项,将限制删除非空架构,并且这在默认情况下处于启用状态。

  • 级 联

    如果已指定此项,则以递归方式删除所有关联的表和函数。

    注释

    在 Unity 目录中,使用 CASCADE 软删除架构及其子对象删除架构。 保留托管表和卷的数据文件,以允许 7 天恢复窗口。 恢复窗口结束后,数据文件将在 48 小时内永久删除(清除)。 不会删除外部表和外部卷的文件。 有关详细信息,请参阅 Unity 目录中的对象存储生命周期

    警告! 如果架构由工作区级别 Hive 元存储管理,则使用 CASCADE 以递归方式删除架构会删除指定位置中的所有文件,而不考虑表类型 (无论是托管还是外部)。

示例

-- Create `inventory_schema` Database
> CREATE SCHEMA inventory_schema COMMENT 'This schema is used to maintain Inventory';

-- Drop the schema and its tables
> DROP SCHEMA inventory_schema CASCADE;

-- Drop the schema using IF EXISTS
> DROP SCHEMA IF EXISTS inventory_schema CASCADE;