TRUNCATE-TABLE
설명
이 문은 지정된 테이블과 파티션의 데이터를 비우는 데 사용됩니다.
구문
TRUNCATE TABLE [<db_name>.]<table_name>[ PARTITION ( <partition_name1> [, <partition_name2> ... ] ) ];
필수 매개변수
1.<db_name>
데이터베이스의 식별자(이름)를 지정합니다.
식별자는 알파벳 문자로 시작해야 하며(unicode 이름 지원이 활성화된 경우 해당 언어의 문자로 시작할 수 있음), 식별자 문자열 전체를 백틱으로 감싸지 않는 한 공백이나 특수 문자를 포함할 수 없습니다(예:
My Database).식별자에는 예약 키워드를 사용할 수 없습니다.
자세한 내용은 식별자 요구 사항 및 예약 키워드를 참조하세요.
2.<table_name>
테이블의 식별자(이름)를 지정합니다. 이 식별자는 해당 테이블이 속한 데이터베이스 내에서 고유해야 합니다.
식별자는 알파벳 문자로 시작해야 하며(unicode 이름 지원이 활성화된 경우 해당 언어의 문자로 시작할 수 있음), 식별자 문자열 전체를 백틱으로 감싸지 않는 한 공백이나 특수 문자를 포함할 수 없습니다(예:
My Object).식별자에는 예약 키워드를 사용할 수 없습니다.
자세한 내용은 식별자 요구 사항 및 예약 키워드를 참조하세요.
선택적 매개변수
1.<partition_name>
파티션의 식별자(이름)를 지정합니다.
식별자는 알파벳 문자로 시작해야 하며(unicode 이름 지원이 활성화된 경우 해당 문자 체계의 문자로 시작할 수 있음), 식별자 문자열 전체를 백틱으로 감싸지 않는 한 공백이나 특수 문자를 포함할 수 없습니다(예:
My Object).식별자에는 예약 키워드를 사용할 수 없습니다.
자세한 내용은 식별자 요구 사항 및 예약 키워드를 참조하세요.
접근 제어 요구 사항
이 SQL 명령을 실행하는 사용자는 최소한 다음 권한을 보유해야 합니다.
| 권한 | 객체 | 참고 사항 |
|---|---|---|
| Drop_priv | 테이블 | TRUNCATE TABLE은 테이블 DROP 작업에 해당합니다 |
사용 시 참고 사항
- 이 문은 데이터를 비우지만 테이블이나 파티션은 유지합니다.
- DELETE와 달리, 이 문은 지정된 테이블이나 파티션의 데이터 전체를 비우는 작업만 지원하며 필터 조건을 추가할 수 없습니다.
- DELETE와 달리, 이 방식으로 데이터를 비워도 쿼리 성능에 영향을 주지 않습니다.
- 이 작업으로 삭제된 데이터는 복구할 수 없습니다.
- 이 명령을 사용할 때는 테이블 상태가 NORMAL이어야 합니다. 즉, SCHEMA CHANGE 등의 작업이 진행 중이어서는 안 됩니다.
- 이 명령으로 인해 진행 중인 데이터 적재가 실패할 수 있습니다.
예제
-
example_db의 테이블 tbl 데이터 비우기
TRUNCATE TABLE example_db.tbl; -
테이블 tbl의 p1 및 p2 파티션 데이터 비우기
TRUNCATE TABLE tbl PARTITION(p1, p2);