MySQL

TRUNCATE TABLE 명령어는 DDL으로 개별적으로 행을 삭제할 수 없으며, 테이블 내부의 모든 행을 삭제한다.
TRUNCATE TABLE 테이블 이름;으로 사용한다.
테이블에서 TRUNCATE TABLE 명령어를 사용하려면 테이블에 대한 ALTER 권한이 필요하다.

DELETE 명령어어는 DML으로 개별적으로 행을 삭제 할 수 있으며 테이블의 행을 삭제한다.
DELETE FROM 테이블 이름 WHERE 조건;으로 사용한다.

DELETE FROM 테이블 이름; 하면 조건을 정하지 않아서 TRUNCATE TABLE 테이블 이름;와 같이 모든 행이 삭제가 되는데 이 차이점은 뭘까?
TRUNCATE TABLE은 테이블을 한번 DROP하고 다시 CREATE하는 기능이 포함되어 있다.
그렇기때문에 AUTO_INCREMENT로 생성된 ID도 초기화되며 다음 생성되는 ID는 1부터 시작한다.
단순히 행을 삭제하는게 아니라 테이블을 초기화 시킬 필요가 있다면 TRUNCATE TABLE SQL문을 사용해야 한다.

'개념정리' 카테고리의 다른 글

HTTP  (0) 2023.04.04
Vector Hashtable VS Collections.synchronizedXxx()  (0) 2023.04.04
Map putIfAbsent(), replace()  (0) 2023.03.16
타입추론  (0) 2023.03.15
String compareTo  (0) 2023.03.15

+ Recent posts