更新时间:2026-07-03 GMT+08:00
分享

删除表

功能描述

删除表。DROP TABLE 用于删除已有的表及其元数据。

  • OBS表(外部表):仅删除元数据信息,存放在OBS上的数据不会被删除。
  • 管理表:同时删除数据及相应的元数据信息。

语法格式

DROP TABLE [ IF EXISTS ] [ db_name. ] table_name

关键字

IF EXISTS:若指定,当表不存在时不会报错;若未指定且表不存在,将抛出异常。

参数说明

参数

是否必选

描述

db_name

数据库名称。若未指定,则默认使用当前数据库。命名规则:由字母、数字和下划线(_)组成,不能是纯数字,且不能以数字和下划线开头。

table_name

要删除的表名称。

注意事项

  • 所要删除的表必须是当前数据库下存在的,否则会出错,可以通过添加 IF EXISTS 来避免出错。
  • 对于OBS表(外部表),DROP TABLE 仅删除元数据,OBS路径下的数据文件仍会保留;对于管理表,元数据和数据将同时被删除。

示例1:基本删除表

删除当前数据库下名为 employee 的表。

DROP TABLE employee;

示例2:使用 IF EXISTS 避免报错

删除名为 employee 的表,若该表不存在则不会报错。

DROP TABLE IF EXISTS employee;

示例3:删除指定数据库的表

删除 company_db 数据库下名为 employee 的表。

DROP TABLE IF EXISTS company_db.employee;

示例4:OBS表与管理表的区别说明

以下示例演示OBS表与Managed Table在删除时的行为差异:

-- 删除管理表:元数据和数据同时被删除
DROP TABLE IF EXISTS managed_table;

-- 删除OBS表(外部表):仅删除元数据,OBS上的数据文件保留
DROP TABLE IF EXISTS obs_table;

若需要同时清理OBS表对应的数据文件,需手动删除OBS路径下的文件,例如 obs://bucket-name/path/to/data/。

相关文档