删除表(DROP TABLE)

功能

DROP TABLE
DROP TABLE
命令用于删除 Lakehouse 中的普通表。执行此操作后,表及其数据将被删除。

语法

DROP TABLE [ IF EXISTS ] [schema_name.]<table_name>

参数说明

参数说明
IF EXISTS
IF EXISTS
可选。如果指定的表不存在,系统不会报错
schema_name
schema_name
可选。指定 schema 的名称。如果未指定,默认使用当前 schema
table_name
table_name
要删除的表名称

示例

示例 1:删除当前 schema 下的表

DROP TABLE my_table;

示例 2:安全删除(表不存在时不报错)

DROP TABLE IF EXISTS my_table;

示例 3:删除指定 schema 下的表

DROP TABLE my_schema.my_table;

示例 4:删除后恢复

-- 删除表 DROP TABLE my_schema.orders; -- 恢复表 UNDROP TABLE my_schema.orders; -- 验证恢复结果 SELECT COUNT(*) FROM my_schema.orders;

注意事项

  • 对象类型匹配

    DROP TABLE
    DROP TABLE
    只能删除普通表。删除动态表请使用
    DROP DYNAMIC TABLE
    DROP DYNAMIC TABLE
    ,删除物化视图请使用
    DROP MATERIALIZED VIEW
    DROP MATERIALIZED VIEW
    。使用错误的命令会报错。

  • 数据恢复:删除表后,在

    data_retention_days
    data_retention_days
    保留周期内可通过
    UNDROP TABLE
    UNDROP TABLE
    恢复。恢复时同名表不能存在。

  • 依赖对象:删除表前,请确认是否有其他对象依赖它:

    • 引用该表的视图将失效
    • 以该表为源的动态表刷新将失败
    • 绑定在该表上的 Table Stream 将无法消费
    • 依赖该表的下游 ETL 任务将执行失败
  • 删除源表会让关联 Stream 失效

    DROP TABLE
    DROP TABLE
    删除源表后,基于该表的所有 Table Stream 将立即失效,无法再消费变更数据。如果需要保留 Stream 数据,请在删除源表前先消费完 Stream 中的所有变更。

  • 级联删除:使用

    DROP SCHEMA
    DROP SCHEMA
    可级联删除 schema 下的所有表,无需逐个删除。

联系我们
预约咨询
微信咨询
电话咨询