La sentencia TRUNCATE de ClickHouse se utiliza para eliminar rápidamente todos los datos de una tabla o base de datos sin alterar 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 todo el clúster especificado. |
SYNC | Hace que el truncado sea síncrono en todas las 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 hacer que se espere a que las acciones se ejecuten en las réplicas.
Puede especificar cuánto tiempo (en segundos) se debe 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 lanza una excepción UNFINISHED.
La consulta TRUNCATE TABLE no es compatible con los siguientes motores de tabla:
TRUNCATE de todas las tablas
TRUNCATE [ALL] TABLES FROM [IF EXISTS] db [LIKE | ILIKE | NOT LIKE '<pattern>'] [ON CLUSTER cluster]
| Parámetro | 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 todo el cluster 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 las bases de datos Replicated. En su lugar, basta con hacer DROP y CREATE de la base de datos.