Skip to main content
Skip to main content

Truncate Table

Truncate allows the data in a table or database to be removed, while preserving their existence. This is a lightweight operation which cannot be reversed.

TRUNCATE Statements

The TRUNCATE statement in ClickHouse is used to quickly remove all data from a table or database while preserving their structure.

TRUNCATE TABLE


ParameterDescription
IF EXISTSPrevents an error if the table does not exist. If omitted, the query returns an error.
db.nameOptional database name.
ON CLUSTER clusterRuns the command across a specified cluster.
SYNCMakes the truncation synchronous across replicas when using replicated tables. If omitted, truncation happens asynchronously by default.

You can use the alter_sync setting to set up waiting for actions to be executed on replicas.

You can specify how long (in seconds) to wait for inactive replicas to execute TRUNCATE queries with the replication_wait_for_inactive_replica_timeout setting.

Note

If the alter_sync is set to 2 and some replicas are not active for more than the time, specified by the replication_wait_for_inactive_replica_timeout setting, then an exception UNFINISHED is thrown.

The TRUNCATE TABLE query is not supported for the following table engines:

TRUNCATE ALL TABLES


ParameterDescription
ALLRemoves data from all tables in the database.
IF EXISTSPrevents an error if the database does not exist.
dbThe database name.
LIKE | ILIKE | NOT LIKE '<pattern>'Filters tables by pattern.
ON CLUSTER clusterRuns the command across a cluster.

Removes all data from all tables in a database.

TRUNCATE DATABASE


ParameterDescription
IF EXISTSPrevents an error if the database does not exist.
dbThe database name.
ON CLUSTER clusterRuns the command across a specified cluster.

Removes all tables from a database but keeps the database itself. When the clause IF EXISTS is omitted, the query returns an error if the database does not exist.

Note

TRUNCATE DATABASE is not supported for Replicated databases. Instead, just DROP and CREATE the database.