728x90
truncate 명령어는 테이블의 모든 데이터를 삭제하는 명령어이다.
delete 명령어와 차이점은
delete의 경우는 행이 삭제 될 때마다 많은 자원이 소모되고 트리거가 걸려있다면 행이 삭제될 때마다 실행된다.
이전에 할당되었던 영역은 삭제되어 빈 테이블이나 클러스터에 그대로 남아있게된다.
쉽게 말하면 데이터 잔여물이 남게된다.
반면 truncate는 비교적 빠르게 데이터 삭제가 가능하며 해당 삭제에 대해서 어떤 롤백 정보도 만들지 않고 바로 커밋한다. 즉 , 롤백이 불가능하다는 뜻이다. 또한 truncate는 트리거나 무결성 제약에 영향을 주지 않는다.
delete와는 다르게 행을 삭제 할 때마다 트리거가 실행되지 않는다.
사용법은 아래와 같다.
truncate table test_table -- test_table
이라는 테이블의 데이터를 모두 삭제한다.
728x90
'데이터베이스' 카테고리의 다른 글
쿼리 예약어 (0) | 2021.09.03 |
---|---|
[postgre] foreign key가 존재하는 table을 truncate/delete할때 constraint 에러 문제 해결하기 (0) | 2021.09.03 |
삽질 1 시퀄라이즈 model, DB 칼럼 타입 불일치 (0) | 2021.08.30 |
Postgre// 칼럼 추가 (0) | 2021.08.25 |
외부에서 내 DB 접속 하기(방화벽, 오라클 DB) (0) | 2021.05.28 |