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 ]
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
ouschema_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 :
Renommez la version actuelle de la table sous un nom différent.
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. | +--------------------------+
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). | +------------------------------------------------------------+