본문 바로가기
데이터베이스

postgresql- truncate 테이블 데이터 모두 삭제

by aesup 2021. 9. 2.
728x90

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

delete 명령어와 차이점

delete의 경우는 행이 삭제 될 때마다 많은 자원이 소모되고 트리거가 걸려있다면 행이 삭제될 때마다 실행된다.

이전에 할당되었던 영역은 삭제되어 빈 테이블이나 클러스터에 그대로 남아있게된다.

쉽게 말하면 데이터 잔여물이 남게된다.

반면 truncate는 비교적 빠르게 데이터 삭제가 가능하며 해당 삭제에 대해서 어떤 롤백 정보도 만들지 않고 바로 커밋한다. 즉 , 롤백이 불가능하다는 뜻이다. 또한 truncate는 트리거나 무결성 제약에 영향을 주지 않는다.

delete와는 다르게 행을 삭제 할 때마다 트리거가 실행되지 않는다.

사용법은 아래와 같다.

truncate table test_table -- test_table

 이라는 테이블의 데이터를 모두 삭제한다.

728x90