-

Impala drop table语句用于删除Impala中的现有表。 此语句还会删除内部表的底层HDFS文件

注意 - 使用此命令时必须小心,因为删除表后,表中可用的所有信息也将永远丢失。

语法

以下是DROP TABLE语句的语法。 这里,IF EXISTS是一个可选子句。 如果我们使用此子句,则会删除具有给定名称的表,只要它存在。 否则,不会执行任何操作。

DROP table database_name.table_name;

如果尝试删除不存在IF EXISTS子句的表,将会生成错误。 (可选)您可以指定database_name和table_name。

让我们首先验证数据库my_db中的表的列表,如下所示。

[quickstart.cloudera:21000] > show tables;

Query: show tables 
+------------+ 
| name       | 
+------------+ 
| customers  | 
| employee   | 
| student    | 
+------------+ 
Fetched 3 row(s) in 0.11s

从上面的结果可以看出,数据库my_db包含3个表

下面是drop table语句的示例。 在本例中,我们从数据库my_db中删除名为student的表。

[quickstart.cloudera:21000] > drop table if exists my_db.student;

执行上述查询时,将删除具有指定名称的表,并显示以下输出。

Query: drop table if exists student

验证

show Tables查询提供Impala中当前数据库中的表的列表。 因此,可以使用Show Tables语句验证是否删除了表。

首先,您需要将上下文切换到所需表所在的数据库,如下所示。

[quickstart.cloudera:21000] > use my_db; 
Query: use my_db

然后,如果使用show tables查询获取表的列表,可以观察名为student的表不在列表中。

[quickstart.cloudera:21000] > show tables; 

Query: show tables 
+-----------+ 
| name      | 
+-----------+ 
| customers | 
| employee  | 
| student   | 
+-----------+ 
Fetched 3 row(s) in 0.11s

使用Hue浏览器创建数据库

打开Impala查询编辑器并在其中键入drop表语句。 然后单击执行按钮,如下面的屏幕截图所示。

创建数据库

执行查询后,轻轻将光标移动到下拉菜单的顶部,您会发现一个刷新符号。 如果单击刷新符号,将刷新数据库列表,并对其应用最近所做的更改。

创建数据库下拉

验证

单击编辑器左侧标题DATABASE下的下拉菜单。 在那里你可以看到一个数据库列表; 选择数据库my_db,如下所示。

创建数据库验证

在选择数据库my_db时,可以看到其中的表列表,如下所示。 在这里,您不能在列表中找到已删除的表学生,如下所示。

创建数据库我的数据库