| <?xml version="1.0" encoding="UTF-8"?> |
| <!-- |
| Licensed to the Apache Software Foundation (ASF) under one |
| or more contributor license agreements. See the NOTICE file |
| distributed with this work for additional information |
| regarding copyright ownership. The ASF licenses this file |
| to you under the Apache License, Version 2.0 (the |
| "License"); you may not use this file except in compliance |
| with the License. You may obtain a copy of the License at |
| |
| http://www.apache.org/licenses/LICENSE-2.0 |
| |
| Unless required by applicable law or agreed to in writing, |
| software distributed under the License is distributed on an |
| "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| KIND, either express or implied. See the License for the |
| specific language governing permissions and limitations |
| under the License. |
| --> |
| <!DOCTYPE concept PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd"> |
| <concept id="drop_database"> |
| |
| <title>DROP DATABASE Statement</title> |
| <titlealts audience="PDF"><navtitle>DROP DATABASE</navtitle></titlealts> |
| <prolog> |
| <metadata> |
| <data name="Category" value="Impala"/> |
| <data name="Category" value="SQL"/> |
| <data name="Category" value="Databases"/> |
| <data name="Category" value="DDL"/> |
| <data name="Category" value="Schemas"/> |
| <data name="Category" value="Developers"/> |
| <data name="Category" value="Data Analysts"/> |
| </metadata> |
| </prolog> |
| |
| <conbody> |
| |
| <p> |
| <indexterm audience="hidden">DROP DATABASE statement</indexterm> |
| Removes a database from the system. The physical operations involve removing the metadata for the database |
| from the metastore, and deleting the corresponding <codeph>*.db</codeph> directory from HDFS. |
| </p> |
| |
| <p conref="../shared/impala_common.xml#common/syntax_blurb"/> |
| |
| <codeblock>DROP (DATABASE|SCHEMA) [IF EXISTS] <varname>database_name</varname> <ph rev="2.3.0">[RESTRICT | CASCADE]</ph>;</codeblock> |
| |
| <p conref="../shared/impala_common.xml#common/ddl_blurb"/> |
| |
| <p conref="../shared/impala_common.xml#common/usage_notes_blurb"/> |
| |
| <p> |
| By default, the database must be empty before it can be dropped, to avoid losing any data. |
| </p> |
| |
| <p rev="2.3.0"> |
| In <keyword keyref="impala23_full"/> and higher, you can include the <codeph>CASCADE</codeph> |
| clause to make Impala drop all tables and other objects in the database before dropping the database itself. |
| The <codeph>RESTRICT</codeph> clause enforces the original requirement that the database be empty |
| before being dropped. Because the <codeph>RESTRICT</codeph> behavior is still the default, this |
| clause is optional. |
| </p> |
| |
| <p rev="2.3.0"> |
| The automatic dropping resulting from the <codeph>CASCADE</codeph> clause follows the same rules as the |
| corresponding <codeph>DROP TABLE</codeph>, <codeph>DROP VIEW</codeph>, and <codeph>DROP FUNCTION</codeph> statements. |
| In particular, the HDFS directories and data files for any external tables are left behind when the |
| tables are removed. |
| </p> |
| |
| <p> |
| When you do not use the <codeph>CASCADE</codeph> clause, drop or move all the objects inside the database manually |
| before dropping the database itself: |
| </p> |
| |
| <ul> |
| <li> |
| <p> |
| Use the <codeph>SHOW TABLES</codeph> statement to locate all tables and views in the database, |
| and issue <codeph>DROP TABLE</codeph> and <codeph>DROP VIEW</codeph> statements to remove them all. |
| </p> |
| </li> |
| <li> |
| <p> |
| Use the <codeph>SHOW FUNCTIONS</codeph> and <codeph>SHOW AGGREGATE FUNCTIONS</codeph> statements |
| to locate all user-defined functions in the database, and issue <codeph>DROP FUNCTION</codeph> |
| and <codeph>DROP AGGREGATE FUNCTION</codeph> statements to remove them all. |
| </p> |
| </li> |
| <li> |
| <p> |
| To keep tables or views contained by a database while removing the database itself, use |
| <codeph>ALTER TABLE</codeph> and <codeph>ALTER VIEW</codeph> to move the relevant |
| objects to a different database before dropping the original database. |
| </p> |
| </li> |
| </ul> |
| |
| <p> |
| You cannot drop the current database, that is, the database your session connected to |
| either through the <codeph>USE</codeph> statement or the <codeph>-d</codeph> option of <cmdname>impala-shell</cmdname>. |
| Issue a <codeph>USE</codeph> statement to switch to a different database first. |
| Because the <codeph>default</codeph> database is always available, issuing |
| <codeph>USE default</codeph> is a convenient way to leave the current database |
| before dropping it. |
| </p> |
| |
| <p conref="../shared/impala_common.xml#common/hive_blurb"/> |
| |
| <p> |
| When you drop a database in Impala, the database can no longer be used by Hive. |
| </p> |
| |
| <p conref="../shared/impala_common.xml#common/example_blurb"/> |
| |
| <!-- Better to conref the same examples in both places. --> |
| |
| <p> |
| See <xref href="impala_create_database.xml#create_database"/> for examples covering <codeph>CREATE |
| DATABASE</codeph>, <codeph>USE</codeph>, and <codeph>DROP DATABASE</codeph>. |
| </p> |
| |
| <p conref="../shared/impala_common.xml#common/s3_blurb"/> |
| |
| <p conref="../shared/impala_common.xml#common/s3_ddl"/> |
| |
| <p conref="../shared/impala_common.xml#common/cancel_blurb_no"/> |
| |
| <p conref="../shared/impala_common.xml#common/permissions_blurb"/> |
| <p rev=""> |
| The user ID that the <cmdname>impalad</cmdname> daemon runs under, |
| typically the <codeph>impala</codeph> user, must have write |
| permission for the directory associated with the database. |
| </p> |
| |
| <p conref="../shared/impala_common.xml#common/example_blurb"/> |
| |
| <codeblock conref="../shared/impala_common.xml#common/create_drop_db_example"/> |
| |
| <p conref="../shared/impala_common.xml#common/related_info"/> |
| |
| <p> |
| <xref href="impala_databases.xml#databases"/>, <xref href="impala_create_database.xml#create_database"/>, |
| <xref href="impala_use.xml#use"/>, <xref href="impala_show.xml#show_databases"/>, <xref href="impala_drop_table.xml#drop_table"/> |
| </p> |
| </conbody> |
| </concept> |