テーブルを切り捨てる
Truncate は、テーブルまたはデータベース内のデータを削除することを可能にしますが、その存在は保持します。これは軽量な操作であり、元に戻すことはできません。
TRUNCATE ステートメント
ClickHouseの TRUNCATE ステートメントは、テーブルやデータベースからすべてのデータを迅速に削除し、その構造を保持するために使用されます。
TRUNCATE TABLE
| パラメータ | 説明 |
|---|---|
IF EXISTS | テーブルが存在しない場合にエラーを防ぎます。省略した場合、クエリはエラーを返します。 |
db.name | オプションのデータベース名。 |
ON CLUSTER cluster | 指定されたクラスター全体でコマンドを実行します。 |
SYNC | レプリケートテーブルを使用している場合、レプリカ間でトランケーションを同期的に行います。省略した場合、トランケーションはデフォルトで非同期で行われます。 |
alter_sync 設定を使用して、レプリカでアクションが実行されるのを待つように設定できます。
非アクティブなレプリカが TRUNCATE クエリを実行するまでの待機時間(秒単位)を指定するには、replication_wait_for_inactive_replica_timeout 設定を使用します。
注記
alter_sync が 2 に設定されていて、一部のレプリカが replication_wait_for_inactive_replica_timeout 設定で指定された時間を超えて非アクティブな場合、例外 UNFINISHED が発生します。
TRUNCATE TABLE クエリは、以下のテーブルエンジンには サポートされていません:
TRUNCATE ALL TABLES
| パラメータ | 説明 |
|---|---|
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 してください。