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

Unity Catalog prend en charge la UNDROP TABLE commande pour récupérer les tables managées supprimées. Par défaut, les tables sont récupérables pendant 7 jours après leur suppression, et vous pouvez configurer la période de récupération au niveau du catalogue ou du schéma à 0 (pour désactiver la récupération) ou de 7 à 30 jours. La configuration de la période de récupération se fait en Aperçu public. Un processus de purge asynchrone supprime définitivement les fichiers de données sous-jacents après la fin de la période de récupération, afin que les fichiers puissent rester dans votre locataire cloud un certain temps après que la table ne soit plus récupérable. Consultez Supprimer une table managée et uncycle de vie de stockage d’objets dans le catalogue Unity.

Syntaxe

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

Paramètre

  • TEMP ou TEMPORAIRE

    S’applique à :case cochée oui Databricks SQL

    Si elle est spécifiée, supprime la table temporaire. Si aucune table temporaire portant ce nom n’existe dans la session, la commande déclenche une erreur de condition d’erreur TABLE_OR_VIEW_NOT_FOUND .

    Si elle n’est pas spécifiée, la commande supprime uniquement une table permanente et génère une erreur si une table temporaire portant le même nom non qualifié existe dans la session. Pour supprimer une table permanente lorsqu’une table temporaire partage le même nom, utilisez le nom qualifié.

  • 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 spécifié, une table gérée du catalogue Unity est supprimée même lorsqu’elle contient des clones peu profonds dépendants. FORCE est requise uniquement lorsque l’espace de travail impose une protection contre le temps de chute pour les clones peu profonds. Si un plain DROP TABLE échoue avec CANNOT_DROP_BASE_TABLE_REFERENCED_BY_SHALLOW_CLONE, utilise FORCE pour le contourner. 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.
-- Where the workspace enforces drop-time protection for shallow clones,
-- a plain DROP 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 the base table even when it has shallow clones. The referencing shallow clones stop working.
> DROP TABLE employeetable FORCE;

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