> ## Documentation Index
> Fetch the complete documentation index at: https://private-7c7dfe99-mintlify-8a08bda2.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

> TRUNCATE文のドキュメント

# TRUNCATE文

ClickHouse の `TRUNCATE` ステートメントは、テーブルまたはデータベースの構造を保持したまま、すべてのデータをすばやく削除するために使用します。

<div id="truncate-table">
  ## テーブルをTRUNCATEする
</div>

```sql theme={null}
TRUNCATE TABLE [IF EXISTS] [db.]name [ON CLUSTER cluster] [SYNC]
```

<br />

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

レプリカ上で操作が実行されるまで待機するよう設定するには、[alter\_sync](/ja/reference/settings/session-settings#alter_sync) 設定を使用できます。

非アクティブなレプリカが `TRUNCATE` クエリを実行するまでの待機時間 (秒) は、[replication\_wait\_for\_inactive\_replica\_timeout](/ja/reference/settings/session-settings#replication_wait_for_inactive_replica_timeout) 設定で指定できます。

<Note>
  `alter_sync` が `2` に設定されていて、`replication_wait_for_inactive_replica_timeout` 設定で指定された時間を超えて一部のレプリカが非アクティブのままである場合、例外 `UNFINISHED` がスローされます。
</Note>

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

* [`View`](/ja/reference/engines/table-engines/special/view)
* [`File`](/ja/reference/engines/table-engines/special/file)
* [`URL`](/ja/reference/engines/table-engines/special/url)
* [`Buffer`](/ja/reference/engines/table-engines/special/buffer)
* [`Null`](/ja/reference/engines/table-engines/special/null)

<div id="truncate-all-tables">
  ## すべてのテーブルをTRUNCATEする
</div>

```sql theme={null}
TRUNCATE [ALL] TABLES FROM [IF EXISTS] db [LIKE | ILIKE | NOT LIKE '<pattern>'] [ON CLUSTER cluster]
```

<br />

| パラメーター                                  | 説明                           |
| --------------------------------------- | ---------------------------- |
| `ALL`                                   | データベース内のすべてのテーブルからデータを削除します。 |
| `IF EXISTS`                             | データベースが存在しない場合にエラーを防ぎます。     |
| `db`                                    | データベース名。                     |
| `LIKE \| ILIKE \| NOT LIKE '<pattern>'` | パターンでテーブルを絞り込みます。            |
| `ON CLUSTER cluster`                    | クラスター全体でコマンドを実行します。          |

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

<div id="truncate-database">
  ## TRUNCATE DATABASE
</div>

```sql theme={null}
TRUNCATE DATABASE [IF EXISTS] db [ON CLUSTER cluster]
```

<br />

| パラメーター               | 説明                       |
| -------------------- | ------------------------ |
| `IF EXISTS`          | データベースが存在しない場合にエラーを防ぎます。 |
| `db`                 | データベース名。                 |
| `ON CLUSTER cluster` | 指定したクラスター全体でコマンドを実行します。  |

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

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