A instrução TRUNCATE no ClickHouse é usada para remover rapidamente todos os dados de uma tabela ou banco de dados, preservando sua estrutura.
TRUNCATE TABLE [IF EXISTS] [db.]name [ON CLUSTER cluster] [SYNC]
| Parâmetro | Descrição |
|---|
IF EXISTS | Evita um erro se a tabela não existir. Se for omitido, a consulta retornará um erro. |
db.name | Nome opcional do banco de dados. |
ON CLUSTER cluster | Executa o comando em um cluster especificado. |
SYNC | Torna o truncamento síncrono entre as réplicas ao usar tabelas replicadas. Se for omitido, o truncamento ocorrerá de forma assíncrona por padrão. |
Você pode usar a configuração alter_sync para definir a espera pela execução de ações nas réplicas.
Você pode especificar por quanto tempo (em segundos) aguardar que réplicas inativas executem consultas TRUNCATE com a configuração replication_wait_for_inactive_replica_timeout.
Se alter_sync estiver definido como 2 e algumas réplicas permanecerem inativas por mais tempo do que o especificado na configuração replication_wait_for_inactive_replica_timeout, será lançada uma exceção UNFINISHED.
A consulta TRUNCATE TABLE não tem suporte para os seguintes motores de tabela:
TRUNCATE DE TODAS AS TABELAS
TRUNCATE [ALL] TABLES FROM [IF EXISTS] db [LIKE | ILIKE | NOT LIKE '<pattern>'] [ON CLUSTER cluster]
| Parâmetro | Descrição |
|---|
ALL | Remove os dados de todas as tabelas do banco de dados. |
IF EXISTS | Evita um error se o banco de dados não existir. |
db | O nome do banco de dados. |
LIKE | ILIKE | NOT LIKE '<pattern>' | Filtra as tabelas por padrão. |
ON CLUSTER cluster | Executa o comando em todo o cluster. |
Remove todos os dados de todas as tabelas de um banco de dados.
TRUNCATE DATABASE [IF EXISTS] db [ON CLUSTER cluster]
| Parâmetro | Descrição |
|---|
IF EXISTS | Evita erro se o banco de dados não existir. |
db | O nome do banco de dados. |
ON CLUSTER cluster | Executa o comando em um cluster especificado. |
Remove todas as tabelas de um banco de dados, mas mantém o próprio banco de dados. Quando a cláusula IF EXISTS é omitida, a consulta retorna erro se o banco de dados não existir.
TRUNCATE DATABASE não tem suporte para bancos de dados Replicated. Em vez disso, faça DROP e CREATE do banco de dados.