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>

TRUNCATE [ TABLE ] [ IF EXISTS ] ERROR_TABLE( <base_table_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 (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.

ERROR_TABLE( base_table_name )

Tronque la table d’erreurs associée à la table de base spécifiée. Pour plus d’informations sur les tables d’erreurs, consultez Journalisation des erreurs DML.

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 (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.

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

L’exemple suivant tronque une table :

  1. Créer une table de base et insérer des données :

    CREATE OR REPLACE TABLE temp_test_truncate (i number);
    
    INSERT INTO temp_test_truncate SELECT seq8() FROM table(generator(rowcount=>20)) v;
    
    SELECT COUNT (*) FROM temp_test_truncate;
    
    +-----------+
    | COUNT (*) |
    |-----------|
    |        20 |
    +-----------+
    
  2. Tronquer la table :

    TRUNCATE TABLE IF EXISTS temp_test_truncate;
    
  3. Vérifier que la table est maintenant vide :

    SELECT COUNT (*) FROM temp_test_truncate;
    
    +-----------+
    | COUNT (*) |
    |-----------|
    |         0 |
    +-----------+