SQL 의 Truncate 사용법
이 시계 가 더 이상 필요 하지 않 을 때 drop 을 사용 하 세 요.이 시 계 를 보존 하려 고 하지만 모든 기록 을 삭제 하려 면 truncate 를 사용 하 십시오.일부 기록 을 삭제 하려 면(always with a WHERE clause)delete 를 사용 하 십시오.
Truncate 는 자료 표 에 있 는 모든 자 료 를 빠르게 비 울 수 있 는 SQL 문법 입 니 다.또한 자동 부가 가치 가 있 는 필드 에 대해 0 으로 재 계산 하 는 역할 을 할 수 있다.
Truncate 문법
[ { database_name.[ schema_name ]. | schema_name . } ]
table_name
[ ; ]
매개 변수database_name
데이터베이스 이름.
schema_name
표 소속 구조의 이름.
table_name
차단 할 표 의 이름 이나 모든 줄 의 표 의 이름 을 삭제 합 니 다.
2.Truncate 사용 주의사항
1.TRUNCATE TABLE 은 기능 적 으로 WHERE 자구 가 없 는 DELETE 문구 와 같 습 니 다.둘 다 표 의 모든 줄 을 삭제 합 니 다.그러나 TRUNCATE TABLE 은 DELETE 보다 속도 가 빠 르 고 사용 하 는 시스템 과 트 랜 잭 션 로그 자원 이 적 습 니 다.
2.DELETE 문 구 는 한 줄 씩 삭제 하고 트 랜 잭 션 로그 에서 삭 제 된 줄 마다 한 줄 씩 기록 합 니 다.TRUNCATE TABLE 은 메모리 테이블 데이터 에 사용 되 는 데이터 페이지 를 방출 하여 데 이 터 를 삭제 하고 트 랜 잭 션 로그 에 만 페이지 의 방출 을 기록 합 니 다.
3.TRUNCATE TABLE 은 표 의 모든 줄 을 삭제 하지만 표 구조 와 그 열,제약,색인 등 은 변 하지 않 습 니 다.새 줄 표지 에 사 용 된 계수 값 을 이 열의 피 드 로 초기 화 합 니 다.표지 계수 값 을 유지 하려 면 DELETE 로 바 꾸 십시오.표 정의 와 데 이 터 를 삭제 하려 면 DROP TABLE 문 구 를 사용 하 십시오.
4.FOREIGN KEY 가 인용 을 제약 하 는 표 에 대해 서 는 TRUNCATE TABLE 을 사용 할 수 없고 WHERE 자구 가 없 는 DELETE 문 구 를 사용 해 야 합 니 다.TRUNCATE TABLE 이 로그 에 기록 되 어 있 지 않 기 때문에 트리거 를 활성화 할 수 없습니다.
5.TRUNCATE TABLE 은 색인 보기에 참여 한 표 에 사용 할 수 없습니다.
6.TRUNCATE TABLE 로 데 이 터 를 삭제 하 는 표 에 데 이 터 를 추가 할 때 UPDATE STATISTICS 를 사용 하여 색인 정 보 를 유지 해 야 합 니 다.
7.ROLLBACK 문구 가 있 으 면 DELETE 작업 은 취소 되 지만 TRUNCATE 는 취소 되 지 않 습 니 다.
3.아래 표 에 TRUNCATE TABLE 을 사용 할 수 없습니다.
1.FOREIGN KEY 에서 인용 을 제약 하 는 표 입 니 다.(자신 을 참조 하 는 외부 키 가 있 는 시 계 를 차단 할 수 있 습 니 다.)
2.색인 보기 에 참여 하 는 표 입 니 다.
3.트 랜 잭 션 을 통 해 발 표 된 표를 복사 하거나 통합 합 니 다.
4.상기 하나 이상 의 특징 을 가 진 표 에 대해 DELETE 문 구 를 사용 하 십시오.
5.TRUNCATE TABLE 은 트리거 를 활성화 할 수 없습니다.이 동작 은 각 줄 의 삭 제 를 기록 하지 않 기 때 문 입 니 다.
4.TRUNCATE,Drop,Delete 의 차이 점
1.drop 과 delete 는 표 의 데이터(정의)만 삭제 하고 drop 문 구 는 표 의 구조,의존 하 는 제약(constrain),트리거(trigger),색인(index)을 삭제 합 니 다.이 표 에 의존 하 는 저장 과정/함 수 는 유지 되 지만 invalid 상태 로 변 합 니 다.
2.delete 문 구 는 DML 언어 입 니 다.이 동작 은 rollback segement 에 놓 여 있 고 사물 을 제출 한 후에 야 유효 합 니 다.해당 트리거(trigger)가 있 으 면 실행 할 때 트리거 됩 니 다.truncate,drop 은 DDL 언어 로 조작 후 효력 이 발생 합 니 다.원래 데 이 터 는 rollback 에 넣 지 않 고 스크롤 백 할 수 없습니다.조작 은 trigger 를 촉발 하지 않 습 니 다.
3.delete 문 구 는 표 가 사용 하 는 extent,고수 선(high watermark)이 원래 의 위 치 를 유지 하 는 데 영향 을 주지 않 습 니 다.drop 문 구 는 표 가 사용 하 는 공간 을 모두 방출 합 니 다.truncate 문 구 를 절약 하지 않 은 상태 에서 minextents 의 extent 에 공간 을 방출 합 니 다.reuse storage 를 사용 하지 않 는 한.truncate 는 고수 선 을 복원 합 니 다.
4.효율 성:drop>truncate>delete
5.안전성:drop 과 truncate 를 조심 하 세 요.특히 백업 이 없 을 때 일부 데 이 터 를 삭제 하려 면 delete 를 사용 할 수 있 습 니 다.where 자 구 를 가 져 가 야 합 니 다.스크롤 백 을 삭제 하려 면 drop 을 사용 할 수 있 습 니 다.시 계 를 삭제 하려 면 drop 을 사용 할 수 있 습 니 다.표 의 모든 데 이 터 를 삭제 하려 면 delete 를 사용 할 수 있 습 니 다.사물 과 관련 이 있 거나 trigger 를 촉발 하려 면 delete 를 사용 하 십시오.표 내부 의 조각 을 정리 하 는 경우 truncate 로 reuse stroage 를 따라 가서 데 이 터 를 다시 가 져 오고 삽입 할 수 있 습 니 다.
6.delete 는 DML 구문 으로 자동 으로 제출 되 지 않 습 니 다.drop/truncate 는 모두 DDL 문장 으로 실행 되면 자동 으로 제출 됩 니 다.
7.drop 은 표,패턴,색인,보기,완전 성 제한 등 전체적인 데 이 터 를 삭제 하 는 데 사 용 됩 니 다.delete 는 표 의 한 원 그룹 과 같은 부분 적 인 데 이 터 를 삭제 하 는 데 사 용 됩 니 다.
8.DROP 는 표 구 조 를 모두 삭제 했다.DELETE 는 데 이 터 를 지 울 뿐 입 니 다.
9.이 시계 가 더 이상 필요 하지 않 을 때 drop 을 사용 합 니 다.이 시 계 를 보존 하려 고 하지만 모든 기록 을 삭제 하려 면 truncate 를 사용 하 십시오.일부 기록 을 삭제 하려 면(always with a WHERE clause)delete 를 사용 하 십시오.
총결산
위 에서 말 한 것 은 편집장 님 께 서 소개 해 주신 SQL 에서 Truncate 의 용법 입 니 다.여러분 께 도움 이 되 셨 으 면 합 니 다.궁금 한 점 이 있 으 시 면 댓 글 을 남 겨 주세요.편집장 님 께 서 바로 답 해 드 리 겠 습 니 다.여기 서도 저희 사이트 에 대한 여러분 의 지지 에 감 사 드 립 니 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
깊이 중첩된 객체를 정확히 일치 검색 - PostgreSQL목차 * 🚀 * 🎯 * 🏁 * 🙏 JSON 객체 예시 따라서 우리의 현재 목표는 "고용주"사용자가 입력한 검색어(이 경우에는 '요리')를 얻고 이 용어와 정확히 일치하는 모든 사용자 프로필을 찾는 것입니다. 즐거운 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.