Partager via


DROP TABLE

S’applique à :case marquée oui Databricks SQL case marquée oui Databricks Runtime

Supprime la table et supprime le répertoire associé à la table du système de fichiers si la table n’est pas une EXTERNAL table. Une exception est levée si la table n’existe pas. Pour supprimer une table, vous devez disposer du privilège MANAGE sur la table, être son propriétaire ou le propriétaire du schéma, du catalogue ou du metastore dans lequel réside la table.

Dans le cas d’une table externe, seules les informations de métadonnées associées sont supprimées du schéma du metastore.

Toutes les contraintes de clé étrangère faisant référence à la table sont également supprimées.

Si la table est mise en cache, la commande annule la mise en cache de la table et de toutes ses dépendances.

Remarque

Les tables sont supprimées dans les 7 à 30 jours. Unity Catalog prend en charge la UNDROP TABLE commande pour récupérer les tables managées supprimées pendant 7 jours. Au bout de 7 jours, les données sous-jacentes sont marquées pour suppression de votre instance cloud durant les opérations régulières de maintenance des tables.

Syntaxe

DROP [ TEMPORARY ] TABLE [ IF EXISTS ] table_name [ FORCE ]

Paramètre

  • TEMPORARY

    S’applique à :coché oui Databricks SQL coché oui Databricks Runtime 17.3 et versions ultérieures

    Supprime une TEMPORARY table.

  • S’IL EXISTE

    S’il est spécifié, aucune erreur TABLE_OR_VIEW_NOT_FOUND n’est levée lorsque la table n’existe pas.

  • table_name

    Le nom du tableau à annuler. Le nom ne doit pas inclure de spécification temporelle ou de spécification d’options. Si la table est introuvable, Azure Databricks génère une erreur TABLE_OR_VIEW_NOT_FOUND. Si la relation trouvée n’est pas une table Azure Databricks génère une erreur de WRONG_COMMAND_FOR_OBJECT_TYPE .

  • FORCE

    Si elle est spécifiée, la table peut être supprimée même si elle a des clones peu profonds dépendants. Cela s’applique uniquement aux tables gérées par le catalogue Unity. Consultez Supprimer la table de base pour un clone peu profond.

Exemples

-- 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;