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

> TRUNCATE SQL 문에 대한 설명서

# TRUNCATE SQL 문

ClickHouse에서 `TRUNCATE` SQL 문은 테이블이나 데이터베이스의 구조는 유지한 채 모든 데이터를 빠르게 제거할 때 사용됩니다.

<div id="truncate-table">
  ## TRUNCATE TABLE
</div>

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

<br />

| 매개변수                 | 설명                                                                                                |
| -------------------- | ------------------------------------------------------------------------------------------------- |
| `IF EXISTS`          | 테이블이 존재하지 않아도 오류가 발생하지 않도록 합니다. 생략하면 쿼리가 오류를 반환합니다.                                               |
| `db.name`            | 선택 사항인 데이터베이스 이름입니다.                                                                              |
| `ON CLUSTER cluster` | 지정된 클러스터 전체에서 명령을 실행합니다.                                                                          |
| `SYNC`               | 복제된 테이블(Replicated Table)을 사용할 때 모든 레플리카에서 TRUNCATE 작업이 동기적으로 수행되도록 합니다. 생략하면 기본적으로 비동기적으로 수행됩니다. |

[alter\_sync](/ko/reference/settings/session-settings#alter_sync) 설정을 사용하면 레플리카에서 작업이 실행될 때까지 대기하도록 설정할 수 있습니다.

[replication\_wait\_for\_inactive\_replica\_timeout](/ko/reference/settings/session-settings#replication_wait_for_inactive_replica_timeout) 설정을 사용하면 비활성 레플리카가 `TRUNCATE` 쿼리를 실행할 때까지 대기할 시간을 초 단위로 지정할 수 있습니다.

<Note>
  `alter_sync`가 `2`로 설정되어 있고 일부 레플리카가 `replication_wait_for_inactive_replica_timeout` 설정에 지정된 시간보다 오래 비활성 상태로 남아 있으면 `UNFINISHED` 예외가 발생합니다.
</Note>

다음 테이블 엔진에서는 `TRUNCATE TABLE` 쿼리가 **지원되지 않습니다**:

* [`View`](/ko/reference/engines/table-engines/special/view)
* [`File`](/ko/reference/engines/table-engines/special/file)
* [`URL`](/ko/reference/engines/table-engines/special/url)
* [`Buffer`](/ko/reference/engines/table-engines/special/buffer)
* [`Null`](/ko/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>
