> ## Documentation Index
> Fetch the complete documentation index at: https://private-7c7dfe99-parallel-read-in-order-multi-part.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

> Documentación sobre las sentencias TRUNCATE

# TRUNCATE

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

```sql theme={null}
TRUNCATE TABLE [IF EXISTS] [db.]name [ON CLUSTER cluster] [SYNC]
```

<br />

| 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](/es/reference/settings/session-settings/alter#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](/es/reference/settings/session-settings/other#replication_wait_for_inactive_replica_timeout).

<Note>
  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`. Con `alter_sync = 3` no se espera a las réplicas inactivas, por lo que no se lanza ninguna excepción.
</Note>

La consulta `TRUNCATE TABLE` **no es compatible** con los siguientes motores de tabla:

* [`View`](/es/reference/engines/table-engines/special/view)
* [`File`](/es/reference/engines/table-engines/special/file)
* [`URL`](/es/reference/engines/table-engines/special/url)
* [`Buffer`](/es/reference/engines/table-engines/special/buffer)
* [`Null`](/es/reference/engines/table-engines/special/null)

## TRUNCATE de todas las tablas

```sql theme={null}
TRUNCATE [ALL] TABLES FROM [IF EXISTS] db [LIKE | ILIKE | NOT LIKE '<pattern>'] [ON CLUSTER cluster]
```

<br />

| 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

```sql theme={null}
TRUNCATE DATABASE [IF EXISTS] db [ON CLUSTER cluster]
```

<br />

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

<Note>
  `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.
</Note>
