メインコンテンツまでスキップ
メインコンテンツまでスキップ

TRUNCATE ステートメント

ClickHouseの TRUNCATE ステートメントは、テーブルやデータベースからすべてのデータを迅速に削除し、その構造を保持するために使用されます。

TRUNCATE TABLE

TRUNCATE TABLE [IF EXISTS] [db.]name [ON CLUSTER cluster] [SYNC]

パラメータ説明
IF EXISTSテーブルが存在しない場合にエラーを防ぎます。省略した場合、クエリはエラーを返します。
db.nameオプションのデータベース名。
ON CLUSTER cluster指定されたクラスター全体でコマンドを実行します。
SYNCレプリケートテーブルを使用している場合、レプリカ間でトランケーションを同期的に行います。省略した場合、トランケーションはデフォルトで非同期で行われます。

alter_sync 設定を使用して、レプリカでアクションが実行されるのを待つように設定できます。

非アクティブなレプリカが TRUNCATE クエリを実行するまでの待機時間(秒単位)を指定するには、replication_wait_for_inactive_replica_timeout 設定を使用します。

注記

alter_sync2 に設定されていて、一部のレプリカが replication_wait_for_inactive_replica_timeout 設定で指定された時間を超えて非アクティブな場合、例外 UNFINISHED が発生します。

TRUNCATE TABLE クエリは、以下のテーブルエンジンには サポートされていません

TRUNCATE ALL TABLES

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 条項を省略した場合、データベースが存在しない場合にエラーを返します。

注記

TRUNCATE DATABASEReplicated データベースには対応していません。その代わりに、データベースをただ DROP して CREATE してください。