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

Truncate

이름

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

시놉시스

Truncate [표] [만]이름[ *] [, ...]
    [신분을 다시 시작 | 계속 정체성] [캐스케이드 | 제한]

설명

Truncate모든 행을 빠르게 제거합니다 테이블 세트. 자격이없는 것과 같은 효과삭제각 테이블에서는 이후로 실제로 테이블을 스캔하지 않으면 더 빠릅니다. 더욱이, 그것은 재생됩니다 후속을 요구하지 않고 즉시 디스크 공간진공작동. 이것은 가장 유용합니다 큰 테이블.

매개 변수

이름

테이블의 이름 (선택적으로 스키마 자격). 만약에전용테이블 앞에 지정되어 있습니다 이름, 그 테이블 만 잘라. 만약에전용는 지정되지 않았으며 표 및 모든 것입니다 후손 테이블 (있는 경우)이 잘립니다. 선택적으로,*테이블 이름으로 지정할 수 있습니다 명시 적으로 자손 테이블이 포함되어 있음을 나타냅니다.

신분을 다시 시작합니다

의 열에서 소유 한 시퀀스를 자동으로 다시 시작합니다 잘린 테이블 (들).

계속 신원

시퀀스 값을 변경하지 마십시오. 이것은 기본입니다.

캐스케이드

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

제한

테이블 중 하나에 외국 키가있는 경우 잘리지 않아 명령에 나열되지 않은 테이블의 참조. 이것은 기본값.

노트

당신은가 있어야합니다.Truncate특권 on 그것을 잘라내는 테이블.

Truncate인수액세스 독점작동하는 각 테이블의 잠그고, 테이블의 다른 모든 동시 작업을 차단합니다. 언제신분을 다시 시작합니다지정되어 있습니다 다시 시작되는 시퀀스도 마찬가지로 독점적으로 잠겨 있습니다. 테이블에 동시에 액세스 해야하는 경우삭제대신 명령을 사용해야합니다.

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

Truncate아무 것도 해고하지 않을 것입니다ON DELETE테이블에 존재할 수있는 트리거. 그러나 그것은 화재 될 것입니다on Truncate트리거. 만약에on Truncate트리거가 정의됩니다 테이블의 다음전기 전트리거가 잘라 내기 전에 발사됩니다.자손 후트리거가 발사됩니다 마지막 절단이 수행되고 모든 시퀀스가 ​​재설정됩니다. 그만큼 트리거는 테이블을 처리 할 순서대로 발사됩니다. (먼저 명령에 나열된 것, 그리고 추가 된 것 계단식으로 인해).

TruncateMVCC-SAFE가 아닙니다. 후에 자르기, 테이블은 동시 거래에 비어있는 것처럼 보일 것입니다. 그들이 잘린 스냅 샷을 사용하는 경우 잘라 내기 전에. 보다스포츠 토토 베트맨 : 문서 : 9.3 : 경고더 많은 것 세부.

Truncate트랜잭션-안전합니다 테이블의 데이터에 대한 존중 : 잘린 것은 안전하게 주변 거래가 커밋되지 않으면 롤백.

언제신분을 다시 시작합니다지정되어 있습니다 묵시적Alter Sequence Restart운영 또한 거래 적으로 수행됩니다. 즉, 그들은 만약 롤백됩니다 주변 거래는 커밋되지 않습니다. 이것은와 다릅니다 정상적인 행동시퀀스 변경. 추가 시퀀스 작업이 트랜잭션이 롤백되기 전에 시퀀스를 다시 시작합니다 시퀀스에서 이러한 작업 중에서 롤백되지만 그들의 영향에 대한 그들의 영향currval (); 즉, 거래 후currval ()의지 내부에서 얻은 마지막 시퀀스 값을 계속 반영합니다. 시퀀스 자체가 더 이상 그것과 일치하십시오. 이것은 일반적인 행동과 유사합니다currval ()실패 후 거래.

테이블을 잘라bigtableand격렬한:

bigtable, fattable;

동일하고 관련 시퀀스 생성기를 재설정합니다.

Bigtable, Fattable Restart Identity를 잘라냅니다.

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

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

호환성

SQL : 2008 표준은 A 포함Truncate구문으로 명령잘린 테이블TableName. 조항계속 신원/다시 시작합니다 신원또한 해당 표준에 나타나지만 약간 있습니다 관련된 의미는 다르지만. 동시 행동 중 일부 이 명령 중 표준에 따라 구현이 정의됩니다. 위의 메모는 다른 것과 비교해야합니다. 필요한 경우 구현.