728x90
반응형
SMALL
TRUNCATE TABLE 문
TRUNCATE 문은 TABLE이나 CLUSTER로부터 모든 행(row)을 삭제하기 위해 사용된다.
• drop과 동일한 테이블 삭제 명령이지만, TRUNCATE 문은 테이블내의 모든 데이터만 삭제된다.
• 기억공간과 구조 모두를 반납하는 drop과 달리 truncate 문은 테이블에 사용된 기억공간(memory)은 회수되지만 테이블의 구조는 남는다.
• delete 문은 rollback이 가능하지만, TRUNCATE 문은 auto COMMIT이므로 rollback할 수 없다.
• 테이블 소유자나 DELETE TABLE 권한이 있어야만 가능하다.
• 테이블에 생성된 제약조건과 연관된 인덱스, 뷰, 시노님은 그대로 유지된다.
명령어 | 대상 |
---|---|
DROP | row,기억공간, 객체구조 |
TRUNCATE | row,기억공간 |
DELETE | row |
【형식】 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 |