• MySQL매뉴얼
    • MySQL 5.6 매뉴얼
    • MySQL 5.1 매뉴얼
    • MySQL 5.0 매뉴얼
    • MySQL HA 매뉴얼
  • 기술문서
    • Xtrabackup 구성
    • 메모리 사용량 모니터링
  • 라이선스
  • 온라인문의
  • 회사소개
  • → 목 록 (MySQL5.6 한글메뉴얼) [close]
  • 1. MySQL 5.6 새로운 기능
  • 2. MySQL 설치 및 업그레이드
  • 3. MySQL Tutorial
  • 4. MySQL 프로그램
  • 5. MySQL 서버관리
  • 6. 보안
  • 7. 백업 및 복구
  • 8. 최적화
  • 9. Language Structure(언어구조)
  • 10. Character Sets(Globalization)
  • 11. 데이터형(Data Types)
  • 12. 함수와 연산자
  • 13. SQL 문법
  • 1. 데이터 정의 문
    1. ALTER DATABASE 구문
    2. ALTER EVENT 구문
    3. ALTER LOGFILE GROUP 구문
    4. ALTER FUNCTION 구문
    5. ALTER PROCEDURE 구문
    6. ALTER SERVER 구문
    7. ALTER TABLE 구문
    8. ALTER TABLESPACE 구문
    9. ALTER VIEW 구문
    10. REATE DATABASE 구문
    11. CREATE EVENT 구문
    12. CREATE FUNCTION 구문
    13. CREATE INDEX 구문
    14. CREATE LOGFILE GROUP 구문
    15. CREATE PROCEDURE 및 CREATE FUNCTION 구문
    16. CREATE SERVER 구문
    17. CREATE TABLE 구문
    18. CREATE TABLESPACE 구문
    19. CREATE TRIGGER 구문
    20. CREATE VIEW 구문
    21. DROP DATABASE 구문
    22. DROP EVENT 구문
    23. DROP FUNCTION 구문
    24. DROP INDEX 구문
    25. DROP LOGFILE GROUP 구문
    26. DROP PROCEDURE 및 DROP FUNCTION 구문
    27. DROP SERVER 구문
    28. DROP TABLE 구문
    29. DROP TABLESPACE 구문
    30. DROP TRIGGER 구문
    31. DROP VIEW 구문
    32. RENAME TABLE 구문
    33. TRUNCATE TABLE 구문
    2. 데이터 조작 문
    3. MySQL 트랜잭션과 잠금 문
    4. 복제 문
    5. Prepared Statements위한 SQL 구문
    6. MySQL 복합문 구문
    7. 데이터베이스 관리 문
    8. MySQL 유틸리티 문
  • 14. InnoDB 스토리지 엔진
  • 15. 기타 스토리지 엔진
  • 16. 고가용성 및 확장성
  • 17. 리플리케이션
  • 18. MySQL Cluster
  • 19. 파티셔닝
  • 20. Stored Programs and Views
  • 21. INFORMATION_SCHEMA
  • 22. PERFORMANCE SCHEMA
  • 23. 컨넥터 및 API
  • 24. MySQL 확장
  • 25. MySQL Enterprise Edition
  • 26. MySQL Workbench
  • 27. 제약 및 제한
  • 28. MySQL 5.7 새로운 기능

13.1.33 TRUNCATE TABLE 구문

 TRUNCATE [TABLE] tbl_name 

TRUNCATE TABLE 은 테이블을 완전히 비 웁니다. 여기에는 DROP 권한이 필요합니다.

TRUNCATE TABLE 은 논리적으로 모든 행을 삭제하는 DELETE 문이나 DROP TABLE 및 CREATE TABLE 문 시퀀스와 비슷합니다. 고성능을 실현하기 위해 데이터를 삭제하기위한 DML 방법을 무시합니다. 따라서 롤백 할 수 없으며, ON DELETE 트리거가 시작되는 것은 아니고, 또한 부모와 자식의 외부 키 관계를 가진 InnoDB 테이블에 대해 수행 할 수 없습니다.

TRUNCATE TABLE 은 DELETE 를 닮은에도 불구하고, DML 문 대신 DDL 문으로 분류됩니다. MySQL 5.6에서는 DELETE 는 다음과 같은 점에서 다릅니다.

  • 잘라 내기 작업 테이블을 삭제하고 다시 만드는 데 특히 큰 테이블의 경우 행을 하나씩 제거하는 것보다 훨씬 빠릅니다.

  • 잘라 내기 작업은 암시 적 커밋을 발생시키기 위해 롤백 할 수 없습니다.

  • 세션이 활성 테이블 잠금을 보유하고있는 경우는, 절약 작업을 수행 할 수 없습니다.

  • TRUNCATE TABLE 은 InnoDB 테이블에서이 테이블을 참조하는 다른 테이블에서 어떠한 FOREIGN KEY 제약이 존재하는 경우 실패합니다. 같은 테이블의 컬럼 간의 외래 키 제약 조건이 허용됩니다.

  • 자르기 작업은 삭제 된 행 수에 대해 의미있는 값을 반환하지 않습니다. 보통의 결과는 "0 rows affected"하지만 이것은 "정보가없는"것으로 해석합니다.

  • 테이블 형식 파일 tbl_name .frm 가 활성화되어있는 한 데이터 또는 인덱스 파일이 손상된 경우에도 TRUNCATE TABLE 을 사용하여 테이블을 빈 테이블로 다시 만들 수 있습니다.

  • AUTO_INCREMENT 값은 모두 그 시작 값으로 재설정됩니다. 이것은 일반적으로 시퀀스 값을 재사용하지 MyISAM 과 InnoDB 에 적용됩니다.

  • 파티션 된 테이블에서 사용 된 경우 TRUNCATE TABLE 은 그 분할을 유지합니다. 즉, 데이터 및 인덱스 파일이 삭제되고 다시 생성되는 반면 파티션 정의 ( .par ) 파일은 영향을받지 않습니다.

  • TRUNCATE TABLE 문은 ON DELETE 트리거를 시작하지 않습니다.

테이블에 TRUNCATE TABLE 은 HANDLER OPEN 에서 열린 테이블의 모든 핸들러를 닫습니다.

TRUNCATE TABLE 은 바이너리 로깅 및 복제 목적의 경우, DROP TABLE 과 연속 CREATE TABLE 로, 즉 DML 대신 DDL로 처리됩니다. 이것은 InnoDB 또는 다른 트랜잭션 스토리지 엔진 (트랜잭션 격리 수준이 명령문 기반 로깅을 허용하지 않습니다 ( READ COMMITTED 또는 READ UNCOMMITTED ))를 사용하는 경우, STATEMENT 또는 MIXED 로깅 모드 사용시에 문이 기록되지 않고 복제되지 않은 사실에 근거합니다. (Bug # 36763) 그러나 InnoDB 를 사용하는 리플리케이션 슬레이브는 여전히 앞에서 설명한 방법으로 적용됩니다.

TRUNCATE TABLE 은 성능 스키마의 요약 테이블에서 사용할 수 있지만 그 효과는 행의 삭제가 아닌 요약 컬럼을 0 또는 NULL 로 재설정하는 것입니다. 섹션 22.9.9 "성능 스키마 요약 테이블" 을 참조하십시오.

서울시 강남구 영동대로 602 6층
TEL: 02-6061-0006  /  E: csr@mysqlkorea.com
주식회사 이노클러스터  등록번호 : 727-86-02261
Copyright © innocluster Co. ltd. all rights reserved