
- 表特定語句
- Impala - 建立表語句
- Impala - 插入語句
- Impala - 選擇語句
- Impala - 描述語句
- Impala - 修改表
- Impala - 刪除表
- Impala - 截斷表
- Impala - 顯示錶
- Impala - 建立檢視
- Impala - 修改檢視
- Impala - 刪除檢視
- Impala - 子句
- Impala - ORDER BY 子句
- Impala - GROUP BY 子句
- Impala - HAVING 子句
- Impala - LIMIT 子句
- Impala - OFFSET 子句
- Impala - UNION 子句
- Impala - WITH 子句
- Impala - DISTINCT 運算子
- Impala 有用資源
- Impala - 快速指南
- Impala - 有用資源
- Impala - 討論
Impala - 刪除資料庫
Impala 的 **DROP DATABASE 語句** 用於從 Impala 中刪除資料庫。在刪除資料庫之前,建議先刪除其中的所有表。
語法
以下是 **DROP DATABASE** 語句的語法。
DROP (DATABASE|SCHEMA) [IF EXISTS] database_name [RESTRICT | CASCADE] [LOCATION hdfs_path];
這裡,**IF EXISTS** 是一個可選子句。如果我們在給定名稱的資料庫存在時使用此子句,則該資料庫將被刪除。如果不存在具有給定名稱的資料庫,則不執行任何操作。
示例
以下是 **DROP DATABASE** 語句的一個示例。假設您在 Impala 中有一個名為 **sample_database** 的資料庫。
並且,如果您使用 **SHOW DATABASES** 語句驗證資料庫列表,您將在其中看到該名稱。
[quickstart.cloudera:21000] > SHOW DATABASES; Query: show DATABASES +-----------------------+ | name | +-----------------------+ | _impala_builtins | | default | | my_db | | sample_database | +-----------------------+ Fetched 4 row(s) in 0.11s
現在,您可以使用如下所示的 **DROP DATABASE 語句** 刪除此資料庫。
< DROP DATABASE IF EXISTS sample_database;
這將刪除指定的資料庫並給出以下輸出。
Query: drop DATABASE IF EXISTS sample_database;
驗證
您可以使用 **SHOW DATABASES** 語句驗證給定資料庫是否已刪除。在這裡,您可以觀察到名為 **sample_database** 的資料庫已從資料庫列表中刪除。
[quickstart.cloudera:21000] > SHOW DATABASES; Query: show DATABASES +----------------------+ | name | +----------------------+ | _impala_builtins | | default | | my_db | +----------------------+ Fetched 3 row(s) in 0.10s [quickstart.cloudera:21000] >
級聯
通常,要刪除資料庫,您需要手動刪除其中的所有表。如果您使用級聯,Impala 會在刪除資料庫之前刪除指定資料庫中的表。
示例
假設 Impala 中有一個名為 **sample** 的資料庫,它包含兩個表,即 **student** 和 **test**。如果您嘗試直接刪除此資料庫,您將收到如下所示的錯誤。
[quickstart.cloudera:21000] > DROP database sample; Query: drop database sample ERROR: ImpalaRuntimeException: Error making 'dropDatabase' RPC to Hive Metastore: CAUSED BY: InvalidOperationException: Database sample is not empty. One or more tables exist.
使用 **cascade**,您可以直接刪除此資料庫(無需手動刪除其內容),如下所示。
[quickstart.cloudera:21000] > DROP database sample cascade; Query: drop database sample cascade
**注意** - 您無法在 Impala 中刪除“**當前資料庫**”。因此,在刪除資料庫之前,您需要確保當前上下文設定為除要刪除的資料庫之外的其他資料庫。
使用 Hue 瀏覽器刪除資料庫
開啟 Impala 查詢編輯器,並在其中鍵入 **DELETE DATABASE** 語句,然後單擊執行按鈕,如下所示。假設有三個資料庫,即 **my_db、my_database** 和 **sample_database** 以及預設資料庫。這裡我們刪除名為 my_database 的資料庫。

執行查詢後,將游標輕輕移至下拉選單的頂部。然後,您會找到一個重新整理符號,如下面的螢幕截圖所示。如果單擊重新整理符號,資料庫列表將重新整理,並且所做的最新更改將應用於它。

驗證
單擊編輯器左側“**資料庫**”標題下的 **下拉** 選單。在那裡,您可以看到系統中資料庫的列表。在這裡,您可以看到新建立的資料庫 **my_db**,如下所示。

如果您仔細觀察,您會發現列表中只有一個數據庫,即 **my_db** 以及預設資料庫。