카테고리:

DML 명령 - 일반

TRUNCATE TABLE

테이블에서 모든 행을 제거하지만, 테이블은 그대로 둡니다(테이블에 대한 모든 권한과 제약 조건 포함). 또한, 테이블에 대한 로드 메타데이터를 삭제하여 명령 완료 후 같은 파일을 테이블로 다시 로딩할 수 있게 합니다.

이것은 시스템에서 테이블을 제거하되 복구할 수 있도록 (로드 기록과 함께) 테이블 버전을 유지하는 DROP TABLE다릅니다.

참고 항목:

CREATE 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        |
----------+
맨 위로 이동