Condividi tramite


DROP TABLE

Si applica a:segno di spunta sì Databricks SQL segno di spunta sì Databricks Runtime

Elimina la tabella e rimuove la directory associata alla tabella dal file system se la tabella non è una EXTERNAL tabella. Se la tabella non esiste, viene generata un'eccezione. Per eliminare una tabella è necessario disporre del privilegio MANAGE per la tabella, essere il proprietario o il proprietario dello schema, del catalogo o del metastore in cui risiede la tabella.

Nel caso di una tabella esterna, solo le informazioni sui metadati associate vengono rimosse dallo schema del metastore.

Vengono eliminati anche tutti i vincoli di chiave esterna che fanno riferimento alla tabella.

Se la tabella viene memorizzata nella cache, il comando rimuove la tabella e tutti i relativi dipendenti.

Nota

Le tabelle vengono eliminate entro 7 e 30 giorni. Unity Catalog supporta il comando UNDROP TABLE per ripristinare le tabelle gestite eliminate per 7 giorni. Dopo 7 giorni, i dati sottostanti sono contrassegnati per l'eliminazione dal tenant cloud durante le normali operazioni di manutenzione delle tabelle.

Sintassi

DROP TABLE [ IF EXISTS ] table_name [ FORCE ]
DROP {TEMP | TEMPORARY} TABLE table_name [IF EXISTS]

Parametro

  • TEMP o TEMPORARY

    Si applica a:segno di spunta sì Databricks SQL

    Importante

    Questa funzionalità è in Anteprima Pubblica.

    Se specificato, elimina la tabella temporanea. Se nella sessione non esiste alcuna tabella temporanea con questo nome, il comando genera un errore di TABLE_OR_VIEW_NOT_FOUND condizione di errore .

    Se non specificato, il comando elimina solo una tabella permanente e genera un errore se nella sessione esiste una tabella temporanea con lo stesso nome non qualificato. Per eliminare una tabella permanente quando una tabella temporanea condivide lo stesso nome, usare il nome completo.

  • SE ESISTE

    Se specificato, non viene generato alcun errore TABLE_OR_VIEW_NOT_FOUND quando la tabella non esiste.

  • table_name

    Il nome della tabella da eliminare. Il nome non deve includere una specifica temporale o una specifica delle opzioni. Se la tabella non è stata trovata, Azure Databricks genera un errore TABLE_OR_VIEW_NOT_FOUND. Se la relazione trovata non è una tabella, Azure Databricks genera un errore WRONG_COMMAND_FOR_OBJECT_TYPE.

  • FORZA

    Se specificato, la tabella può essere eliminata anche se dispone di cloni superficiali dipendenti. Questo è applicabile solo per le tabelle gestite di Unity Catalog. Vedere Eliminare la tabella di base per un clone superficiale.

Esempi

-- Assumes a table named `employeetable` exists.
> DROP TABLE employeetable;

-- Assumes a table named `employeetable` exists in the `userdb` schema
> DROP TABLE userdb.employeetable;

-- Assumes a table named `employeetable` does not exist.
-- Throws TABLE_OR_VIEW_NOT_FOUND
> DROP TABLE employeetable;
  Error: TABLE_OR_VIEW_NOT_FOUND

-- Assumes a table named `employeetable` does not exist. Try with IF EXISTS
-- this time it will not throw exception
> DROP TABLE IF EXISTS employeetable;

-- Assumes a table named `employeetable` exists and has a shallow clone.
-- Throws CANNOT_DROP_BASE_TABLE_REFERENCED_BY_SHALLOW_CLONE
> DROP TABLE employeetable;
  Error: CANNOT_DROP_BASE_TABLE_REFERENCED_BY_SHALLOW_CLONE

-- Assumes a table named `employeetable` exists and has a shallow clone.
-- Drops base table, but shallow clones referencing this base table will no longer work
> DROP TABLE employeetable FORCE;

-- Creates and drops a temporary table
> CREATE TEMPORARY TABLE scratchpad(txt STRING);
> DROP TEMPORARY TABLE scratchpad;