본문 바로가기
DataBase/MySQL

MySQL TRUNCATE 명령어 (테이블 초기화)

by 코딩이라구 2022. 12. 21.

이번에는 MySQL에서 TRUNCATE 명령어란 DELETE문과 같이 테이블의 레코드를 삭제하기 위하여 사용합니다. 하지만 DELETE문과는 다르게 동작하며 테이블 초기화의 기능을 가진 TRUNCATE에 대하여 알아보도록 하겠습니다.


MySQL TRUNCATE 테이블 초기화

 

MySQL DELETE 문 정리 (테이블 데이터 삭제)

MySQL에서 DELETE문은 테이블(Table)에 저장되어 있는 데이터를 삭제하기 위해 사용하는 SQL문입니다. 기본적인 사용법으로 테이블(Table)의 전체 레코드 또는 삭제할 레코드를 선택하여 삭제하실 수

chragu.com

 

1. TRUNCATE란?

테이블의 모든 데이터를 완전히 삭제합니다. TRUNCATE는 레코드 단위가 아닌 테이블을 자체를 DROP문을 실행한 후 재생성하는 과정으로 DML이 아닌 DDL 언어에 가깝습니다. TRUNCATE는 테이블의 최초 생성된 초기 상태로 만들어주는 역할을 하는 명령어로 할당된 Storage만 남기고 모두 삭제합니다.

  • TRUNCATE TABLE [테이블명]
-- 'TEST' 테이블의 모든 데이터를 삭제합니다.
TRUNCATE TABLE TEST;

2. TRUNCATE와 DELETE의 공통점과 차이점

⊙ 공통점

  • 두 명령어 모두 테이블의 레코드를 삭제하기 위하여 사용합니다.

 

⊙ 차이점

  • TRUNCATE는 DELETE보다 더 빠른 수행속도를 보이지만 테이블 명세만 남기고 데이터가 존재하던 공간을 모두 제거하기 위한 명령어로 복구가 불가능하다는 제한사항 또한 존재합니다. 그리고 기존 사용중인 AUTO_INCREMENT 값 역시 초기화가 됩니다.
  • DELETE는 조건에 맞는 데이터를 선택하여 삭제할 수 있지만, TRUNCATE는 전체 데이터만을 삭제할 수 있습니다.

 

이상으로 MySQL에서 TRUNCATE 명령어에 대한 설명 및 DELETE와의 차이점에 대하여 알아보았습니다.

댓글