DROP TABLE
描述
DROP TABLE
删除表及其关联的目录(如果表不是 EXTERNAL
表)。如果表不存在,则抛出异常。
对于外部表,仅从元存储数据库中删除关联的元数据信息。
如果表已缓存,则命令将取消缓存表及其所有依赖项。
语法
DROP TABLE [ IF EXISTS ] table_identifier [ PURGE ]
Parameter
IF EXISTS
如果指定,当表不存在时不会抛出异常。
table_identifier
指定删除的表名,可以选择使用数据库名进行限定。
语法:
[ database_name. ] table_name
PURGE
如果指定,则在丢弃表时跳过回收站完全清除表。
示例
-- 假设存在一个名为 `employeetable` 的表。
DROP TABLE employeetable;
-- 假设在数据库 `userdb` 中存在一个名为 `employeetable` 的表。
DROP TABLE userdb.employeetable;
-- 假设不存在一个名为 `employeetable` 的表。
-- 抛出异常
DROP TABLE employeetable;
Error happens in sql: DROP TABLE employeetable
org.apache.spark.sql.catalyst.analysis.NoSuchTableException: [TABLE_OR_VIEW_NOT_FOUND] The table or view `spark_catalog`.`default`.`employeetable` cannot be found.
(state=,code=0)
-- 假设不存在一个名为 `employeetable` 的表,用 IF EXISTS 选项尝试
-- 此时不会抛出异常
DROP TABLE IF EXISTS employeetable;
-- 完全丢弃表。
DROP TABLE employeetable PURGE;