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 :

CREATE TABLE

Syntaxe

TRUNCATE [ TABLE ] [ IF EXISTS ] <name>
Copy

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 ou schema_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        |
----------+
Copy