테이블 비우기
테이블 비우기 (Truncate Table)
Truncate는 테이블이나 데이터베이스의 데이터를 제거하면서 존재는 유지하게 해 줍니다. 되돌릴 수 없는 가벼운 연산입니다.
출처: 문서
본문
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_sync가 2로 설정되고 일부 복제본이 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 |
| ON CLUSTER cluster | 클러스터 전체에서 명령을 실행합니다. |
데이터베이스의 모든 테이블에서 모든 데이터를 제거합니다.
TRUNCATE DATABASE
TRUNCATE DATABASE [IF EXISTS] db [ON CLUSTER cluster]
| 파라미터 | 설명 |
|---|---|
| IF EXISTS | 데이터베이스가 없을 때 오류를 방지합니다. |
| db | 데이터베이스 이름. |
| ON CLUSTER cluster | 지정된 클러스터 전체에서 명령을 실행합니다. |
데이터베이스에서 모든 테이블을 제거하지만 데이터베이스 자체는 유지합니다. IF EXISTS 절이 생략되면 데이터베이스가 존재하지 않을 때 쿼리가 오류를 반환합니다.
TRUNCATE DATABASE는 Replicated 데이터베이스에서는 지원되지 않습니다. 대신 데이터베이스를 DROP하고 CREATE하면 됩니다.