차근차근/SQL

truncate , 테이블의 데이터 모두 삭제하기.

예쁜꽃이피었으면 2014. 7. 29. 00:58

select * from book; -- 삭제 대상 테이블 조회

CREATE TABLE bak_20140612_book SELECT * FROM book; -- 삭제 대상 테이블의 데이터를 새로운 백업 테이블에 모두 이관

truncate table book; -- 삭제 대상 테이블의 데이터 한번에 삭제

 

 

 

 

 

-- 일부 데이터 남기고 나머지만 삭제

select * from member;

CREATE TABLE bak_20140612_member SELECT * FROM member;

select * from member  where USER_ID not in ("1111@gmail.com","2222@live.com","3333@nate.com","4444@naver.com");

delete from member where USER_ID  not in ("1111@gmail.com","2222@live.com","3333@nate.com",4444@naver.com);

jessica_special-5truncate

http://radiocom.kunsan.ac.kr/lecture/oracle/sql/truncate.html​ -​TRUNCATE TABLE 문

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

반응형

'차근차근 > SQL' 카테고리의 다른 글

mssql , CONVERT함수 ,SET IDENTITY_INSERT  (0) 2015.05.29
mysql pk추가 삭제  (0) 2015.01.05
mysql dump만들기(백업) , 복구 (import)  (0) 2014.12.29
engine mysql  (0) 2014.12.24
DUAL  (0) 2014.07.29