TRUNCATE TABLE¶
Supprime toutes les lignes d’une table, mais laisse la table intacte (y compris tous les privilèges et contraintes de la table). Supprime également les métadonnées de chargement de la table, ce qui permet aux mêmes fichiers d’être à nouveau chargés dans la table une fois la commande terminée.
Notez que ceci est différent de DROP TABLE, qui supprime la table du système, mais conserve une version de la table (avec son historique de chargement) pour pouvoir la récupérer.
- Voir aussi :
Syntaxe¶
TRUNCATE [ TABLE ] [ IF EXISTS ] <name>
Paramètres¶
name
Indique l’identificateur de la table à tronquer. Si l’identificateur contient des espaces ou des caractères spéciaux, 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 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.
Notes sur l’utilisation¶
DELETE et TRUNCATE TABLE conservent les données supprimées à des fins de récupération (par exemple, en utilisant Time Travel) pendant la période de conservation des données. Cependant, lorsqu’une table est tronquée, les métadonnées de chargement ne peuvent pas être récupérées.
Le mot clé
TABLE
est facultatif si le nom de la table est entièrement qualifié ou si une base de données et un schéma sont actuellement utilisés pour la session.
Exemples¶
-- create a basic table CREATE OR REPLACE TABLE temp (i number); -- populate it with some rows INSERT INTO temp SELECT seq8() FROM table(generator(rowcount=>20)) v; -- verify that the rows exist SELECT COUNT (*) FROM temp; ----------+ count(*) | ----------+ 20 | ----------+ -- truncate the table TRUNCATE TABLE IF EXISTS temp; -- verify that the table is now empty SELECT COUNT (*) FROM temp; ----------+ count(*) | ----------+ 0 | ----------+