이 문서는 지원되지 않는 버전의 PostgreSQL 용입니다.
당신은에 대해 같은 페이지를 볼 수 있습니다PostgreSQL : 문서 : 17 : 토토 결과버전 또는 위에 나열된 다른 지원 버전 중 하나입니다.

Truncate

이름

Truncate- 테이블 또는 테이블 세트를 비우십시오

시놉시스

Truncate [표]이름[, ...] [Cascade | 제한]

설명

Truncate모든 행을 빠르게 제거합니다 테이블 세트에서. 자격이없는 것과 같은 효과삭제각 테이블에서는하지만 실제로 테이블을 스캔하지 않으면 더 빠릅니다. 게다가 a 후속진공작동. 이것은 큰 테이블에서 가장 유용합니다.

매개 변수

이름

테이블의 이름 (선택적으로 스키마 자격) 잘린.

캐스케이드

외국 키가있는 모든 테이블을 자동으로 자릅니다 명명 된 테이블 또는 테이블에 대한 참조 로 인해 그룹에 추가캐스케이드.

제한

테이블 중 하나라도 외국 키가있는 경우 자르기 거부 잘리지 않은 테이블의 참조. 이것 기본값입니다.

노트

테이블의 소유자 만 할 수 있습니다Truncateit.

Truncate테이블에서 사용할 수 없습니다 그것은 다른 테이블이 아니라면 다른 테이블에서 외국 키 참조가 있습니다 이러한 테이블도 같은 명령으로 잘립니다. 확인 그러한 경우의 유효성은 테이블 스캔이 필요하며 전체가 필요합니다. 포인트는 하나를하지 않습니다. 그만큼캐스케이드옵션을 사용하여 모든 종속 테이블을 자동으로 포함시킬 수 있습니다. - 그러나이 옵션을 사용할 때 매우 조심하십시오. 그렇지 않으면 의도하지 않은 데이터 손실!

Truncate실행되지 않습니다ON DELETE테이블.

경고

TruncateMVCC-SAFE가 아닙니다 (보다윈 토토 : 문서 : 8.3 : 동시성 제어일반 MVCC에 대한 정보). 잘린 후, 테이블이 있습니다 모든 동시 거래에 비어있는 것처럼 보입니다 잘림 전에 찍은 스냅 샷을 사용하고 있습니다 발생했습니다. 이것은 거래에만 문제가 될 것입니다 그것은 자르기 전에 잘린 테이블에 액세스하지 못했습니다 잘림이 발생했습니다 - 그렇게 한 모든 거래 적어도액세스 공유하다차단하는 잠금Truncate해당 거래가 완료 될 때까지. 따라서 잘린 것은 명백한 불일치를 유발하지 않습니다 동일하게 연속 쿼리를위한 테이블 내용 표이지만 사이에 눈에 띄는 불일치가 발생할 수 있습니다 잘린 테이블 및 기타 테이블의 내용 데이터베이스.

Truncate트랜잭션-안전, 그러나 주변 거래는 커밋되지 않습니다.

예제

테이블을 잘라bigtable격렬한:

bigtable, fattable;

테이블을 잘라기타및 참조하는 테이블로 캐스케이드기타 테이블외국 키 제약 조건을 통해 :

기타 테이블 캐스케이드를 잘라냅니다.

호환성

없음TruncateSQL 표준.