SQL:Truncate
데이터베이스에서 테이블의 모든 데이터를 빠르게 삭제하는 SQL 명령어입니다.
주요 특징
TRUNCATE TABLE ... 의 특징:
- 테이블의 모든 행(row)을 삭제
- DELETE보다 훨씬 빠름 (로그를 최소화하고 한 번에 처리)
- AUTO_INCREMENT 같은 시퀀스를 초기화
- 트랜잭션 로그에 개별 행 삭제를 기록하지 않음
CASCADE 옵션
- 다른 테이블에서 해당 테이블을 참조하는 외래 키(Foreign Key)가 있을 때 사용
- CASCADE 없이 실행하면 외래 키 제약조건 때문에 에러 발생
- CASCADE를 붙이면 참조하는 테이블의 데이터도 함께 삭제됨
예시
-- CASCADE 없이 실행 (외래 키 참조가 있으면 에러)
TRUNCATE TABLE my_table;
-- CASCADE로 실행. 참조하는 테이블도 함께 삭제하는 옵션.
TRUNCATE TABLE my_table CASCADE;