DROP ICEBERG TABLE

Supprime une table Iceberg du schéma actuel/spécifié, mais conserve une version de la table Iceberg afin qu’elle puisse être récupérée en utilisant UNDROP ICEBERG TABLE. Pour plus d’informations, voir Notes sur l’utilisation (dans ce chapitre).

Notez que cette rubrique fait référence aux tables Iceberg en les appelant simplement « tables », sauf lorsque le fait de préciser tables Iceberg permet d’éviter toute confusion.

Voir aussi :

CREATE ICEBERG TABLE , SHOW ICEBERG TABLES , UNDROP ICEBERG TABLE

Syntaxe

DROP [ ICEBERG ] TABLE [ IF EXISTS ] <name> [ CASCADE | RESTRICT ]
Copy

Paramètres

name

Indique l’identificateur de la table à détruire. Si l’identificateur contient des espaces, des caractères spéciaux ou des caractères majuscules et minuscules, toute la chaîne doit être délimitée par des guillemets doubles. Les identificateurs entre guillemets doubles sont également sensibles à la casse (par exemple, "My Object").

Si l’identificateur de la table n’est pas complet (sous la forme db_name.schema_name.table_name ou schema_name.table_name), la commande recherche la table dans le schéma actuel de la session.

CASCADE | RESTRICT

Indique si la table peut être détruite s’il existe des clés étrangères qui font référence à la table :

  • CASCADE détruit la table même si celle-ci présente des clés primaires/uniques qui sont référencées par des clés étrangères dans d’autres tables.

  • RESTRICT renvoie un avertissement sur les références de clés étrangères existantes et ne détruit pas la table.

Par défaut : CASCADE

Exigences en matière de contrôle d’accès

Un rôle utilisé pour exécuter cette commande SQL doit avoir les privilèges suivants définis au minimum ainsi :

Privilège

Objet

Remarques

OWNERSHIP

Table Iceberg

OWNERSHIP is a special privilege on an object that is automatically granted to the role that created the object, but can also be transferred using the GRANT OWNERSHIP command to a different role by the owning role (or any role with the MANAGE GRANTS privilege).

USAGE

Volume externe

USAGE

Intégration (catalogue)

Nécessaire si la table Iceberg utilise une intégration de catalogue.

Notez que l’exploitation d’un objet dans un schéma requiert également le privilège USAGE sur la base de données et le schéma parents.

Pour obtenir des instructions sur la création d’un rôle personnalisé avec un ensemble spécifique de privilèges, voir Création de rôles personnalisés.

Pour des informations générales sur les rôles et les privilèges accordés pour effectuer des actions SQL sur des objets sécurisables, voir Aperçu du contrôle d’accès.

Notes sur l’utilisation

  • La destruction d’une table ne la supprime pas définitivement du système. Snowflake conserve une version de la table supprimée dans Time Travel pendant le nombre de jours spécifié par le paramètre DATA_RETENTION_TIME_IN_DAYS de la table. Pour plus d’informations, voir Métadonnées et instantanés pour les tables Iceberg.

  • Pendant la période de conservation de Time Travel, vous pouvez restaurer une table supprimée à l’aide de la commande UNDROP ICEBERG TABLE.

  • Une fois qu’une table supprimée a été purgée, elle ne peut pas être récupérée ; elle doit être recréée.

  • Après la destruction d’une table, la création d’une table portant le même nom crée une nouvelle version de la table. Vous pouvez restaurer la version supprimée de la table précédente en suivant les étapes suivantes :

    1. Renommez la version actuelle de la table sous un nom différent.

    2. Utilisez la commande UNDROP ICEBERG TABLE pour restaurer la version précédente.

  • Avant de supprimer une table, vérifiez qu”aucune vue ne la référence. La suppression d’une table référencée par une vue rend la vue non valide (si vous interrogez la vue, une erreur de type « l’objet n’existe pas » est renvoyée).

Exemples

Détruire une table :

DROP ICEBERG TABLE t2;

+--------------------------+
| status                   |
|--------------------------|
| T2 successfully dropped. |
+--------------------------+
Copy

Supprimez à nouveau la table, mais n’engendrez pas d’erreurs si la table n’existe pas :

DROP ICEBERG TABLE IF EXISTS t2;

+------------------------------------------------------------+
| status                                                     |
|------------------------------------------------------------|
| Drop statement executed successfully (T2 already dropped). |
+------------------------------------------------------------+
Copy