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

Truncate

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

시놉시스

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

설명

Truncate토토 커뮤니티 세트에서 모든 행을 빠르게 제거합니다. 자격이없는 것과 같은 효과삭제각 토토 커뮤니티에서는 실제로 토토 커뮤니티을 스캔하지 않기 때문에 더 빠릅니다. 또한 후속을 요구하지 않고 디스크 공간을 즉시 되 찾습니다진공작동. 이것은 큰 토토 커뮤니티에서 가장 유용합니다.

매개 변수

이름

테이블의 이름 (선택적으로 스키마 자격). 만약에전용테이블 이름 앞에 지정되어 있으며 해당 테이블 만 잘려옵니다. 만약에전용는 지정되지 않았으며 토토 커뮤니티과 모든 후손 토토 커뮤니티 (있는 경우)이 잘립니다. 선택적으로,*테이블 이름 후에 지정하여 자손 테이블이 포함되어 있음을 명시 적으로 표시 할 수 있습니다.

신분을 다시 시작합니다

잘린 토토 커뮤니티의 열에서 소유 한 시퀀스를 자동으로 다시 시작합니다.

계속 신원

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

캐스케이드

이름이 지정된 테이블 중 하나 또는 그룹에 추가 된 테이블에 대한 외국 키 참조가있는 모든 테이블을 자동으로 자르고캐스케이드.

제한

토토 커뮤니티 중 하나라도 명령에 나열되지 않은 토토 커뮤니티에서 외국 키 참조가있는 경우 자르기를 거부합니다. 이것은 기본입니다.

노트

당신은가 있어야합니다.Truncate토토 커뮤니티의 특권을 자르기 위해 토토 커뮤니티의 특권입니다.

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

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

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

TruncateMVCC-SAFE가 아닙니다. 잘린 후, 토토 커뮤니티은 동시 트랜잭션에 비어있는 것처럼 보이며, 자르기가 발생하기 전에 스냅 샷을 사용하는 경우 토토 커뮤니티이 나타납니다. 보다토토 캔 : 문서 : 11 : 13.5. 경고자세한 내용은

Truncate토토 커뮤니티의 데이터와 관련하여 트랜잭션-안전입니다. 주변 거래가 커밋되지 않으면 잘린 것이 안전하게 롤백됩니다.

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

Truncate현재 외국 테이블에 대한 지원이 없습니다. 이것은 지정된 테이블에 외국인 자손 테이블이 있으면 명령이 실패한다는 것을 의미합니다.

예제

토토 커뮤니티을 잘라bigtableand격렬한:

bigtable, fattable;

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

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

토토 커뮤니티을 잘라기타및 참조하는 테이블에 대한 캐스케이드Othertable외국 키 제약 조건을 통해 :

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

호환성

SQL : 2008 표준은 A 포함Truncate구문으로 명령잘린 토토 커뮤니티TableName. 조항계속 신원/신분을 다시 시작합니다또한 해당 표준에 나타나지만 관련 의미는 약간 다릅니다. 이 명령의 동시성 동작 중 일부는 표준에 의해 정의 된 구현이 왼쪽으로 표시되므로 위의 노트를 고려하고 필요한 경우 다른 구현과 비교해야합니다..

참조

삭제