删除表
描述
DROP TABLE
删除表并从文件系统中移除与表关联的目录,如果表不是
EXTERNAL
表。如果表不存在,则抛出异常。
对于外部表,仅从元数据存储数据库中删除关联的元数据。
如果表是缓存的,该命令将取消缓存表及其所有依赖项。
语法
DROP TABLE [ IF EXISTS ] table_identifier [ PURGE ]
参数
-
IF EXISTS
如果指定,则在表不存在时不会抛出异常。
-
table_identifier
指定要删除的表名。表名可以选择性地带上数据库名。
语法:
[ database_name. ] table_name
-
PURGE
如果指定,则在删除表时完全清除表而跳过回收站(注意:PURGE在Hive Metastore 0.14.0及以上版本可用)。
示例
-- 假设存在一个名为 `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;