メインコンテンツへスキップ
メインコンテンツへスキップ

TRUNCATE 文

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

TRUNCATE TABLE

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

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

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

replication_wait_for_inactive_replica_timeout SETTING を使用して、非アクティブなレプリカが TRUNCATE クエリを実行するまで何秒待機するかを指定できます。

注記

alter_sync SETTING が 2 に設定されていて、一部のレプリカが replication_wait_for_inactive_replica_timeout SETTING で指定された時間より長く非アクティブな場合、UNFINISHED という例外がスローされます。

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

すべてのテーブルを TRUNCATE する

TRUNCATE [ALL] TABLES FROM [IF EXISTS] db [LIKE | ILIKE | NOT LIKE '<pattern>'] [ON CLUSTER cluster]

ParameterDescription
ALLデータベース内のすべてのテーブルからデータを削除します。
IF EXISTSデータベースが存在しない場合でもエラーを発生させません。
dbデータベース名。
LIKE | ILIKE | NOT LIKE '<pattern>'パターンでテーブルをフィルタリングします。
ON CLUSTER clusterクラスター全体に対してコマンドを実行します。

データベース内のすべてのテーブルから全データを削除します。

TRUNCATE DATABASE

TRUNCATE DATABASE [IF EXISTS] db [ON CLUSTER cluster]

ParameterDescription
IF EXISTSデータベースが存在しない場合にエラーが発生しないようにします。
dbデータベース名。
ON CLUSTER cluster指定したクラスタ全体でコマンドを実行します。

データベース自体は保持したまま、そのデータベース内のすべてのテーブルを削除します。句 IF EXISTS を省略すると、データベースが存在しない場合はクエリはエラーとなります。

注記

TRUNCATE DATABASEReplicated データベースではサポートされていません。代わりに、データベースを DROP してから CREATE してください。