TRUNCATE는 ROLLBACK으로 되돌릴 수 없다.
DROP VS TRUNCATE
DROP은 객체 제거, TRUNCATE는 행 비우기다
둘 다 위험한 DDL 계열 작업이지만 결과 상태가 다르다. 구조를 없앨지, 구조를 남기고 행만 지울지를 먼저 구분한다.
| 기준 | DROP TABLE | TRUNCATE TABLE |
|---|---|---|
| 남는 것 | 테이블 객체와 데이터가 사라짐 | 테이블 구조는 남고 모든 행만 삭제 |
| 다시 쓰기 | 복구하거나 다시 생성해야 함 | 같은 테이블에 다시 INSERT 가능 |
| 주의점 | 참조 객체와 권한 영향 확인 | 외래 키와 롤백 가능 여부 확인 |
DDL/암묵 커밋 성격 때문에 사전 백업이 우선이다.
트랜잭션 안의 TRUNCATE와 DROP은 롤백 가능하다.
운영 판단: 빠르게 비우기면 TRUNCATE, 객체 제거면 DROP이다. 어느 쪽이든 권한, 참조 관계, 백업 경로를 먼저 확인한다.