Impala - 删除表



Impala 的 `drop table` 语句用于删除 Impala 中已存在的表。此语句还会删除内部表的底层 HDFS 文件。

注意 - 使用此命令时必须小心,因为一旦删除表,表中的所有信息都将永久丢失。

语法

`DROP TABLE` 语句的语法如下所示。这里,`IF EXISTS` 是一个可选子句。如果使用此子句,只有在存在具有给定名称的表时才会删除该表。否则,将不执行任何操作。

DROP table database_name.table_name;

如果尝试删除不存在的表且没有使用 `IF EXISTS` 子句,则会生成错误。可以选择性地与 `table_name` 一起指定 `database_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 table` 语句。然后单击执行按钮,如下面的屏幕截图所示。

Creating Database

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

Creating Database Dropdown

验证

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

Creating Database Verification

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

Creating Database MY DB
广告