본문 바로가기

Web Dev

PostgreSQL 데이터 모두 지우기 - truncate

 
truncate 명령어는 테이블의 모든 데이터를 삭제한다.

 

 

삭제 명령어 delete 와 차이점 은 다음과 같다.

delete 명령어
- 행이 삭제될때마다 많은 자원이 소모된다
- 트리거가 걸려있다면 행이 삭제될 때마다 실행된다
- 이전에 할당된 영역은 삭제되어 빈테이블 혹은 클러스터에 남아 잔여물이 생긴다

truncate 명령어 
- 비교적 빠르게 데이터 삭제 가능하다
- 명령어를 실행하며 롤백 정보를 만들지 않고 바로 커밋한다
- 롤백이 불가하다
- 트리거나 무결성 제약에 영향을 주지 않는다
- 행이 삭제될 때마다 트리거가 실행되지 않는다


additional options.

truncate table tableName(테이블명)

 

tabelName 테이블의 데이터를 모두 삭제한다

 

truncate table tableName restart identity

tabelName 테이블의 시퀀스를 자동으로 재시작하며 테이블 데이터를 모두 삭제한다

truncate table tableName continue identity

tabelName 테이블의 시퀀스는 리셋하지 않고 테이블 데이터만 모두 삭제한다

 

truncate table tableName continue identity

tabelName 테이블의 시퀀스는 리셋하지 않고 테이블 데이터만 모두 삭제한다

truncate table tableName cascade

 

tabelName 테이블과 연결된 데이터가 있다면 연결된 데이터도 모두 삭제한다. (외래키 연결 데이터 포함)

truncate table tableName restrict

tabelName 테이블과 연결된 데이터가 하나라도 있다면 데이터를 삭제하지 않는다 (cascade 반대 개념)

 

 

출처: https://m.blog.naver.com/rhkrehduq/221521433438

'Web Dev' 카테고리의 다른 글

사내위키 만들기 - xWiki 설치하기  (1) 2020.08.09
FOSS  (0) 2020.05.29