본문 바로가기
IT/DBMS 공통

TRUNCATE

by 최고영회 2014. 1. 21.
728x90
반응형
SMALL

TRUNCATE TABLE 문


TRUNCATE 문은 TABLE이나 CLUSTER로부터 모든 행(row)을 삭제하기 위해 사용된다.

• drop과 동일한 테이블 삭제 명령이지만, TRUNCATE 문은 테이블내의 모든 데이터만 삭제된다.
• 기억공간과 구조 모두를 반납하는 drop과 달리 truncate 문은 테이블에 사용된 기억공간(memory)은 회수되지만 테이블의 구조는 남는다.
• delete 문은 rollback이 가능하지만, TRUNCATE 문은 auto COMMIT이므로 rollback할 수 없다.
• 테이블 소유자나 DELETE TABLE 권한이 있어야만 가능하다.
• 테이블에 생성된 제약조건과 연관된 인덱스, 뷰, 시노님은 그대로 유지된다.

명령어대상
DROProw,기억공간, 객체구조
TRUNCATErow,기억공간
DELETErow


【형식】
     TRUNCATE TABLE [schema.] table 
              [{PRESERVE ¦ PURGE} MATERIALIZED VIEW LOG ]
              [{DROP ¦ REUSE} STORAGE];

여기서 
DROP STORAGE는 TRUNCATE TABLE의 디폴트 동작이며, 테이블의 초기 저장 속성을 복구하는 기능을 가지고 있다.

REUSE STORAGE는 테이블에 할당되었던 모든 익스텐트가 그대로 유지되며, 테이블에 삽입될 다른 행을 보관하는데 이용될 수 있다.
테이블이 매우 빨리 성장하고, 새로운 행을 삽입하기 위해 기존의 행들을 삭제하려는 경우에는 REUSE STORAGE를 이용한다.

TRUNCATE TABLE 문은 롤백 데이터를 생성하지 않으므로 delete 문을 이용하는 것보다 더 효율적이다.

【예제】
SQL> CREATE TABLE test
  2  ( first_name       VARCHAR2(20),
  3    last_name        VARCHAR2(25));
 
Table created.
 
SQL> INSERT INTO test VALUES('arirang','kim');
 
1 row created.
 
SQL> SELECT * FROM test;
 
FIRST_NAME           LAST_NAME
-------------------- -------------------------
arirang              kim
 
SQL> TRUNCATE TABLE test;
 
Table truncated.
 
SQL> select * from test;
 
no rows selected


728x90
반응형
LIST

'IT > DBMS 공통' 카테고리의 다른 글

대용량 데이터베이스 솔루션 - 인덱스의 유형과 특징  (0) 2014.02.10
CASCADE  (0) 2014.01.21
대용량 데이터베이스 솔루션 - 데이터 저장구조와 특징  (0) 2014.01.19
mysql 설치  (0) 2013.12.24
mysqld_safe  (0) 2013.12.24