TRUNCATE removes all rows from a table. At a high level, it works by dropping the table and recreating a new table with the same name.
The TRUNCATE statement performs a schema change. For more information about how online schema changes work in CockroachDB, see .
TRUNCATE is a schema change, and as such is not transactional. For more information about how schema changes work, see .
Synopsis
Required privileges
The user must have theDROP on the table.
Parameters
| Parameter | Description |
|---|---|
table\_name | The name of the table to truncate. |
CASCADE | Truncate all tables with dependencies on the table being truncated. CASCADE does not list dependent tables it truncates, so should be used cautiously. |
RESTRICT | (Default) Do not truncate the table if any other tables have dependencies on it. |
Viewing schema changes
This schema change statement is registered as a job. You can view long-running jobs with .Examples
Truncate a table (no foreign key dependencies)
Truncate a table and dependent tables
In these examples, theorders table has a relationship to the customers table. Therefore, it’s only possible to truncate the customers table while simultaneously truncating the dependent orders table, either using CASCADE or explicitly.
Truncate dependent tables using CASCADE
CASCADE truncates all dependent tables without listing them, which can lead to inadvertent and difficult-to-recover losses. To avoid potential harm, we recommend truncating tables explicitly in most cases. See Truncate Dependent Tables Explicitly for more details.

