DROP EXTERNAL TABLE¶
Supprime une table externe du schéma actuel/spécifié. Notez qu’il s’agit d’une opération comportant uniquement des métadonnées. Aucun des fichiers référencés par la table externe n’est détruit.
- Voir aussi :
CREATE EXTERNAL TABLE , ALTER EXTERNAL TABLE , SHOW EXTERNAL TABLES , DESCRIBE EXTERNAL TABLE
Syntaxe¶
DROP EXTERNAL TABLE [ IF EXISTS ] <name> [ CASCADE | RESTRICT ]
Paramètres¶
name
Indique l’identificateur de la table externe à 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 (p. ex.
"My Object"
).Si l’identificateur de la table externe n’est pas complet (sous la forme
db_name.schema_name.table_name
ouschema_name.table_name
), la commande recherche la table externe dans le schéma actuel de la session.CASCADE | RESTRICT
Indique si la table externe peut être détruite s’il existe des clés étrangères qui font référence à la table :
CASCADE
détruit la table externe 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 externe.
Par défaut :
CASCADE
Notes sur l’utilisation¶
Contrairement à une table standard, la destruction d’une table externe la purge du système. Une table externe ne peut pas être récupérée avec Time Travel ; de plus, il n’y a pas de commande UNDROP EXTERNAL TABLE. Une table externe détruite doit être recréée.
Après avoir supprimé une table externe, la création d’une table externe portant le même nom recrée la table. Aucun historique de l’ancienne version de la table externe n’est conservé.
Avant de détruire une table externe, vérifiez qu”aucune vue ne lui fait référence. La destruction d’une table externe référencée par une vue rend non valide la vue (comme interroger la vue renvoie une erreur de type « l’objet n’existe pas »).
Exemples¶
Détruire une table externe :
SHOW EXTERNAL TABLES LIKE 't2%'; +-------------------------------+------------------+---------------+-------------+-----------------------+---------+-----------------------------------------+------------------+------------------+-------+-----------+----------------------+ | created_on | name | database_name | schema_name | owner | comment | location | file_format_name | file_format_type | cloud | region | notification_channel | |-------------------------------+------------------+---------------+-------------+-----------------------+---------+-----------------------------------------+------------------+------------------+-------+-----------+----------------------| | 2018-08-06 06:00:42.340 -0700 | T2 | MYDB | PUBLIC | MYROLE | | @MYDB.PUBLIC.MYSTAGE/ | | JSON | AWS | us-east-1 | NULL | +-------------------------------+------------------+---------------+-------------+-----------------------+---------+-----------------------------------------+------------------+------------------+-------+-----------+----------------------+ DROP EXTERNAL TABLE t2; +--------------------------+ | status | |--------------------------| | T2 successfully dropped. | +--------------------------+ SHOW EXTERNAL TABLES LIKE 't2%'; +------------+------+---------------+-------------+-------+---------+----------+------------------+------------------+-------+--------+----------------------+ | created_on | name | database_name | schema_name | owner | comment | location | file_format_name | file_format_type | cloud | region | notification_channel | |------------+------+---------------+-------------+-------+---------+----------+------------------+------------------+-------+--------+----------------------| +------------+------+---------------+-------------+-------+---------+----------+------------------+------------------+-------+--------+----------------------+
Détruire à nouveau la table, mais ne pas engendrer d’erreur si la table n’existe pas :
DROP EXTERNAL TABLE IF EXISTS t2; +------------------------------------------------------------+ | status | |------------------------------------------------------------| | Drop statement executed successfully (T2 already dropped). | +------------------------------------------------------------+