테이블 비우기

테이블 비우기 (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_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
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하면 됩니다.

더 알아보기 (Learn more)