ClickHouse の TRUNCATE ステートメントは、テーブルまたはデータベースの構造を保持したまま、すべてのデータをすばやく削除するために使用します。
テーブルをTRUNCATEする
TRUNCATE TABLE [IF EXISTS] [db.]name [ON CLUSTER cluster] [SYNC]| Parameter | Description |
|---|---|
IF EXISTS |
テーブルが存在しない場合にエラーを防ぎます。省略すると、クエリはエラーを返します。 |
db.name |
省略可能なデータベース名。 |
ON CLUSTER cluster |
指定したクラスター全体でコマンドを実行します。 |
SYNC |
レプリケートテーブルを使用している場合、TRUNCATE をレプリカ間で同期的に実行します。省略した場合、デフォルトで非同期に実行されます。 |
レプリカ上で操作が実行されるまで待機するよう設定するには、alter_sync 設定を使用できます。
非アクティブなレプリカが TRUNCATE クエリを実行するまでの待機時間 (秒) は、replication_wait_for_inactive_replica_timeout 設定で指定できます。
TRUNCATE TABLE クエリは、次のテーブルエンジンではサポートされていません。
すべてのテーブルをTRUNCATEする
TRUNCATE [ALL] TABLES FROM [IF EXISTS] db [LIKE | ILIKE | NOT LIKE '<pattern>'] [ON CLUSTER cluster]| パラメーター | 説明 |
|---|---|
ALL |
データベース内のすべてのテーブルからデータを削除します。 |
IF EXISTS |
データベースが存在しない場合にエラーを防ぎます。 |
db |
データベース名。 |
LIKE | ILIKE | NOT LIKE '<pattern>' |
パターンでテーブルを絞り込みます。 |
ON CLUSTER cluster |
クラスター全体でコマンドを実行します。 |
データベース内のすべてのテーブルからすべてのデータを削除します。
TRUNCATE DATABASE
TRUNCATE DATABASE [IF EXISTS] db [ON CLUSTER cluster]| パラメーター | 説明 |
|---|---|
IF EXISTS |
データベースが存在しない場合にエラーを防ぎます。 |
db |
データベース名。 |
ON CLUSTER cluster |
指定したクラスター全体でコマンドを実行します。 |
データベース自体は残したまま、そのデータベース内のすべてのテーブルを削除します。句 IF EXISTS を省略すると、データベースが存在しない場合、クエリはエラーを返します。