TRUNCATE TABLE¶
테이블에서 모든 행을 제거하지만, 테이블은 그대로 둡니다(테이블에 대한 모든 권한과 제약 조건 포함). 또한, 테이블에 대한 로드 메타데이터를 삭제하여 명령 완료 후 같은 파일을 테이블로 다시 로딩할 수 있게 합니다.
이것은 시스템에서 테이블을 제거하되 복구할 수 있도록 (로드 기록과 함께) 테이블 버전을 유지하는 DROP TABLE 과 다릅니다.
- 참고 항목:
구문¶
TRUNCATE [ TABLE ] [ IF EXISTS ] <name>
매개 변수¶
name
자를 테이블의 식별자를 지정합니다. 식별자에 공백이나 특수 문자가 포함된 경우 전체 문자열을 큰따옴표로 묶어야 합니다. 큰따옴표로 묶인 식별자도 대/소문자를 구분합니다(예:
"My Object"
).테이블 식별자가 (
db_name.schema_name.table_name
또는schema_name.table_name
형식으로) 정규화되지 않은 경우 이 명령은 세션의 현재 스키마에서 테이블을 찾습니다.
사용법 노트¶
DELETE 와 TRUNCATE TABLE은 둘 다 데이터 보존 기간에 복구 목적으로(즉, Time Travel 사용) 삭제된 데이터를 유지 관리합니다. 하지만 테이블이 잘리면 로드 메타데이터를 복구할 수 없습니다.
테이블 이름이 정규화되거나 데이터베이스와 스키마가 현재 세션에 사용 중인 경우
TABLE
키워드는 선택 사항입니다.
예¶
-- create a basic table CREATE OR REPLACE TABLE temp (i number); -- populate it with some rows INSERT INTO temp SELECT seq8() FROM table(generator(rowcount=>20)) v; -- verify that the rows exist SELECT COUNT (*) FROM temp; ----------+ count(*) | ----------+ 20 | ----------+ -- truncate the table TRUNCATE TABLE IF EXISTS temp; -- verify that the table is now empty SELECT COUNT (*) FROM temp; ----------+ count(*) | ----------+ 0 | ----------+