MySQL – 테이블 삭제의 다른 방법

테이블의 데이터 삭제 시 DELETE를 사용한다.

WHERE 조건을 통해 특정 데이터만 삭제 하거나 WHERE 조건 없이 테이블 전체의 데이터를 삭제 할 수도 있다.

그렇다면 테이블의 PK로 만들기 위해서 자주 사용하는 AUTU_INCREMENT에서 생성된 컬럼을 값은 DELETE에서 테이블을 전부 삭제해도 초기화 되지 않는데 이런 경우에는 어떤 방법을 사용해야 하는가?

이러한 답변은 테이블 A를 초기화하기 전에 테이블 A와 구조가 같은 테이블 B를 만들고 테이블 A를 DROP으로 테이블 자체를 삭제하고 테이블 B의 이름을 테이블 A로 변경하면 된다.

그 프로세스를 하나의 명령어 처리할 수 있게 해주는 것이 TRUNCATE이다.

사용법이야 너무 단순해

주의할 점은 DELETE와 달리 WHERE 조건을 줄 수 없으며 특정 데이터만 지울 수 없다.

무조건 테이블 초기화(테이블의 전체 데이터 삭제, AUTU_INCREMENT도 초기화)

참고자료https://dev.mysql.com/doc/refman/8.0/en/truncate-table.htmlTRUNCATE [ TABLE ] tbl_name TRUNCATE TABLE empties a table completely. It requires the DROP privilege. Logically, TRUNCATE TABLE is similar to a DELETE statement that deletes all rows, or a sequence of DROP TABLE and CREATE TABLE statements. To achieve high performance, TRUNCATE …dev.mysql.com