TRUNCATE permite eliminar los datos de una tabla o una base de datos sin eliminarlas. Es una operación ligera que no se puede deshacer.
La instrucción TRUNCATE de ClickHouse se utiliza para eliminar rápidamente todos los datos de una tabla o una base de datos, conservando su estructura.
TRUNCATE TABLE [IF EXISTS] [db.]name [ON CLUSTER cluster] [SYNC]
| Parámetro | Descripción |
|---|
IF EXISTS | Evita un error si la tabla no existe. Si se omite, la consulta devuelve un error. |
db.name | Nombre opcional de la base de datos. |
ON CLUSTER cluster | Ejecuta el comando en el clúster especificado. |
SYNC | Hace que el truncado sea síncrono entre réplicas cuando se usan tablas replicadas. Si se omite, el truncado se realiza de forma asíncrona de manera predeterminada. |
Puede usar la configuración alter_sync para establecer la espera hasta que las acciones se ejecuten en las réplicas.
Puede especificar cuánto tiempo (en segundos) esperar a que las réplicas inactivas ejecuten consultas TRUNCATE con la configuración replication_wait_for_inactive_replica_timeout.
Si alter_sync está establecido en 2 y algunas réplicas permanecen inactivas durante más tiempo del especificado por la configuración replication_wait_for_inactive_replica_timeout, se genera una excepción UNFINISHED.
La consulta TRUNCATE TABLE no es compatible con los siguientes motores de tabla:
TRUNCATE [ALL] TABLES FROM [IF EXISTS] db [LIKE | ILIKE | NOT LIKE '<pattern>'] [ON CLUSTER cluster]
| Parameter | Descripción |
|---|
ALL | Elimina los datos de todas las tablas de la base de datos. |
IF EXISTS | Evita un error si la base de datos no existe. |
db | El nombre de la base de datos. |
LIKE | ILIKE | NOT LIKE '<pattern>' | Filtra las tablas según el patrón. |
ON CLUSTER cluster | Ejecuta el comando en todo el clúster. |
Elimina todos los datos de todas las tablas de una base de datos.
TRUNCATE DATABASE [IF EXISTS] db [ON CLUSTER cluster]
| Parámetro | Descripción |
|---|
IF EXISTS | Evita un error si la base de datos no existe. |
db | El nombre de la base de datos. |
ON CLUSTER cluster | Ejecuta el comando en un clúster especificado. |
Elimina todas las tablas de una base de datos, pero conserva la propia base de datos. Si se omite la cláusula IF EXISTS, la consulta devuelve un error si la base de datos no existe.
TRUNCATE DATABASE no es compatible con bases de datos Replicated. En su lugar, basta con aplicar DROP y CREATE a la base de datos.