TRUNCATE TABLE

Quita todas las filas de una tabla o partición. La tabla no debe ser una vista ni una tabla externa o temporal. Para truncar varias particiones a la vez, especifique las particiones en partition_spec . Si no partition_spec se especifica , quita todas las particiones de la tabla.

Si la tabla se almacena en caché, el comando borra los datos almacenados en caché de la tabla y todos sus dependientes que hacen referencia a ella. La memoria caché se rellenará de forma descomprimida cuando se acceda a la tabla o a los dependientes la próxima vez.

Sintaxis

TRUNCATE TABLE table_identifier [ partition_spec ]

Parámetros

  • table_identifier

    • [database_name.] table_name: un nombre de tabla, opcionalmente calificado con un nombre de base de datos.
    • delta.`<path-to-table>`: ubicación de una tabla delta existente.
  • partition_spec

    Lista opcional separada por comas de pares clave-valor para particiones.

    Sintaxis:

Ejemplos

-- Create table Student with partition
CREATE TABLE Student (name STRING, rollno INT) PARTITIONED BY (age INT);

SELECT * FROM Student;
+----+------+---+
|name|rollno|age|
+----+------+---+
| ABC|     1| 10|
| DEF|     2| 10|
| XYZ|     3| 12|
+----+------+---+

-- Remove all rows from the table in the specified partition
TRUNCATE TABLE Student partition(age=10);

-- After truncate execution, records belonging to partition age=10 are removed
SELECT * FROM Student;
+----+------+---+
|name|rollno|age|
+----+------+---+
| XYZ|     3| 12|
+----+------+---+

-- Remove all rows from the table from all partitions
TRUNCATE TABLE Student;

SELECT * FROM Student;
+----+------+---+
|name|rollno|age|
+----+------+---+
+----+------+---+