TRUNCATE ステートメント
ClickHouse における TRUNCATE ステートメントは、テーブルまたはデータベースからすべてのデータを高速に削除しつつ、その構造を保持するために使用されます。
TRUNCATE TABLE
| Parameter | Description |
|---|---|
IF EXISTS | テーブルが存在しない場合にエラーが発生するのを防ぎます。省略すると、このクエリはエラーを返します。 |
db.name | 任意のデータベース名。 |
ON CLUSTER cluster | 指定したクラスタ全体でコマンドを実行します。 |
SYNC | レプリケートテーブルを使用している場合、レプリカ間での TRUNCATE 処理を同期的に実行します。省略した場合、既定では非同期で実行されます。 |
レプリカ上でアクションが実行されるまで待機するよう設定するには、alter_sync 設定を使用できます。
非アクティブなレプリカが TRUNCATE クエリを実行するまでに待機する時間(秒)を、replication_wait_for_inactive_replica_timeout 設定で指定できます。
:::note
alter_sync が 2 に設定されていて、一部のレプリカが replication_wait_for_inactive_replica_timeout 設定で指定された時間を超えて非アクティブな状態である場合、UNFINISHED という例外がスローされます。
:::
TRUNCATE TABLE クエリは、次のテーブルエンジンではサポートされていません。
すべてのテーブルを TRUNCATE
| Parameter | Description |
|---|---|
ALL | データベース内のすべてのテーブルからデータを削除します。 |
IF EXISTS | データベースが存在しない場合でもエラーにならないようにします。 |
db | データベース名。 |
LIKE | ILIKE | NOT LIKE '<pattern>' | パターンでテーブルをフィルタリングします。 |
ON CLUSTER cluster | クラスター全体でコマンドを実行します。 |
データベース内のすべてのテーブルからすべてのデータを削除します。
TRUNCATE DATABASE ステートメント
| パラメーター | 説明 |
|---|---|
IF EXISTS | データベースが存在しない場合でもエラーになりません。 |
db | データベース名。 |
ON CLUSTER cluster | 指定したクラスタ全体でコマンドを実行します。 |
データベース自体は残したまま、そのデータベース内のすべてのテーブルを削除します。句 IF EXISTS を省略すると、データベースが存在しない場合にクエリはエラーを返します。
注記
TRUNCATE DATABASE は Replicated データベースではサポートされていません。代わりに、そのデータベースを DROP してから CREATE し直してください。