> ## Documentation Index
> Fetch the complete documentation index at: https://private-7c7dfe99-fix-nav-issues.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

> Documentación sobre las sentencias TRUNCATE

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

<div id="truncate-table">
  ## TRUNCATE TABLE
</div>

```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_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#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`.
</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)

<div id="truncate-all-tables">
  ## TRUNCATE de todas las tablas
</div>

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

<div id="truncate-database">
  ## TRUNCATE DATABASE
</div>

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

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