删除表

描述

DROP TABLE 删除表并从文件系统中移除与表关联的目录,如果表不是 EXTERNAL 表。如果表不存在,则抛出异常。

对于外部表,仅从元数据存储数据库中删除关联的元数据。

如果表是缓存的,该命令将取消缓存表及其所有依赖项。

语法

DROP TABLE [ IF EXISTS ] table_identifier [ PURGE ]

参数

示例

-- 假设存在一个名为 `employeetable` 的表。
DROP TABLE employeetable;
-- 假设在 `userdb` 数据库中存在一个名为 `employeetable` 的表
DROP TABLE userdb.employeetable;
-- 假设名为 `employeetable` 的表不存在。
-- 抛出异常
DROP TABLE employeetable;
Error: org.apache.spark.sql.AnalysisException: Table or view not found: employeetable;
(state=,code=0)
-- 假设名为 `employeetable` 的表不存在,尝试使用 IF EXISTS
-- 这次将不会抛出异常
DROP TABLE IF EXISTS employeetable;
-- 完全清空表并跳过垃圾箱。
DROP TABLE employeetable PURGE;