Impala 简明教程
Impala - Drop a Table
Impala drop table 语句用于删除 Impala 中的现有表。此语句还删除内部表的底层 HDFS 文件。
NOTE − 使用此命令时必须小心,因为一旦删除了表,表中可用的所有信息也将永远丢失。
Syntax
以下是 DROP TABLE 语句的语法。在此处, IF EXISTS 是一个可选子句。如果我们使用此子句,则仅当存在表时,才会删除具有给定名称的表。否则,将不执行任何操作。
DROP table database_name.table_name;
如果您尝试在没有 IF EXISTS 子句的情况下删除不存在的表,将生成一个错误。您可以选择性地指定 database_name 与 t*able_name* 一起。
Example
让我们首先验证数据库 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 statement 的示例。在此示例中,我们从数据库 my_db 中删除了名为 student 的表。
[quickstart.cloudera:21000] > drop table if exists my_db.student;
执行上述查询后,将删除指定名称的表,并显示以下输出。
Query: drop table if exists student
Verification
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