更新时间: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/。
父主题: 表相关