Skip to content

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;

See also

Favorite site