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

잘라내기

이름

토토 커뮤니티 --테이블 또는 테이블 세트 비우기

시놉시스

잘라내기 [ 표 ] [ 전용 ]이름[ * ] [, ... ]
    [ ID 다시 시작 | 계속 ID ] [ 캐스케이드 | 제한 ]

설명

잘라내기빠르게 모든 행을 제거합니다. 테이블 세트에서. 무자격과 동일한 효과를 가집니다.삭제각 테이블에 있지만, 그렇기 때문에 실제로 테이블을 스캔하지 않는 것이 더 빠릅니다. 게다가, 그것은 별도의 작업이 필요하지 않고 즉시 디스크 공간을 회수합니다. 후속진공작업. 이것은 큰 테이블에서 가장 유용합니다.

매개변수

이름

테이블의 이름(선택적으로 스키마 한정) 잘립니다. 만일지정됨 테이블 이름 앞에는 해당 테이블만 잘립니다. 만일지정되지 않았습니다. 테이블 모든 하위 테이블(있는 경우)이 잘립니다. 선택적으로,*지정 가능 해당 하위 항목을 명시적으로 나타내기 위해 테이블 이름 뒤에 테이블이 포함되어 있습니다.

ID 재설정

다음의 열이 소유한 시퀀스를 자동으로 다시 시작합니다. 잘린 테이블.

계속 ID

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

캐스케이드

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

제한

테이블에 외래 키가 있는 경우 자르기 거부 명령에 나열되지 않은 테이블의 참조입니다. 이것이 기본값입니다.

참고

당신은 다음을 가지고 있어야 합니다잘라내기특권 테이블에서 잘라냅니다.

잘라내기획득접속 독점작동하는 각 테이블에 대한 잠금 on은 테이블의 다른 모든 동시 작업을 차단합니다. 만약에 테이블에 대한 동시 액세스가 필요한 경우에는삭제대신 명령을 사용해야 합니다.

잘라내기테이블에서는 사용할 수 없습니다. 다른 테이블의 외래 키 참조가 있는 테이블 이러한 테이블은 동일한 명령에서도 잘립니다. 확인 중 그러한 경우 유효성을 확인하려면 테이블 스캔이 필요하며 전체 요점은 하나도하지 않는 것입니다.캐스케이드옵션을 사용하면 모든 종속 테이블을 자동으로 포함할 수 있습니다. — 하지만 이 옵션을 사용할 때는 매우 주의해야 합니다. 그렇지 않으면 의도하지 않은 데이터 손실!

잘라내기어떤 것도 실행하지 않습니다삭제 중다음에 대해 존재할 수 있는 트리거 테이블. 하지만 발사될 것이다잘라내기 중트리거. 만일잘라내기 중트리거는 모든 테이블에 대해 정의된 다음 모두잘라내기 전트리거가 실행되기 전에 실행됩니다. 잘림이 발생하고 모두이후 자르기마지막 잘림이 발생한 후 트리거가 실행됩니다. 수행. 트리거는 테이블이 실행되는 순서대로 실행됩니다. 처리되어야 합니다(먼저 명령에 나열된 항목, 그 다음 계단식으로 인해 추가된 것).

경고

잘라내기MVCC에 안전하지 않습니다. (참조토토 사이트 순위 : 문서 : 8.4 : 동시성 제어일반용 MVCC에 대한 정보). 잘린 후 테이블은 모든 동시 트랜잭션에 대해 비어 있는 것으로 나타납니다. 자르기 전에 찍은 스냅샷을 사용하고 있습니다. 발생했습니다. 이는 거래에만 해당되는 문제입니다. 이전에 잘린 테이블에 액세스하지 않은 잘림이 발생했습니다 - 그렇게 한 모든 트랜잭션 적어도 하나를 보유할 것입니다.액세스 공유잠금, 차단할 수 있음잘라내기해당 거래가 완료될 때까지. 따라서 잘림으로 인해 명백한 불일치가 발생하지 않습니다. 동일한 항목에 대한 연속 쿼리에 대한 테이블 내용 표 사이에 눈에 띄는 불일치가 발생할 수 있습니다. 잘린 테이블과 다른 테이블의 내용 데이터베이스.

잘라내기다음과 함께 거래가 안전합니다. 테이블의 데이터를 고려하여 잘림은 안전하게 이루어집니다. 주변 트랜잭션이 커밋되지 않으면 롤백됩니다.

경고

모두ALTER SEQUENCE RESTART사용의 결과로 수행된 작업ID 재설정옵션은 비트랜잭션이며 실패 시 롤백되지 않습니다. 위험을 최소화하기 위해 이러한 작업은 나머지 모두 후에잘라내기의 작업이 완료되었습니다. 그러나 다음과 같은 경우에는 여전히 위험이 있습니다.잘라내기은(는) 내부에서 수행됩니다. 나중에 중단되는 거래 블록. 에 대한 예를 들어, 고려하세요

시작;
토토 커뮤니티 TABLE foo RESTART IDENTITY;
복사 foo FROM ...;
커밋;

만약에복사중간에 실패함 이를 통해 테이블 데이터는 올바르게 롤백되지만 시퀀스에는 다음과 같은 값이 남게 됩니다. 이전보다 작아졌으며, 이로 인해 중복 키 오류 또는 나중에 다른 문제 발생 거래. 이것이 문제가 될 가능성이 있다면, 사용하지 않는 것이 가장 좋습니다.다시 시작 신원, 그리고 테이블은 이전보다 더 높은 일련 번호를 갖게 됩니다.

테이블 자르기빅테이블그리고뚱뚱해짐:

TRUNCATE 빅테이블, 팻테이블;

동일하며 관련 시퀀스도 재설정됩니다. 생성기:

토토 커뮤니티 bigtable, fattable RESTART IDENTITY;

테이블 자르기기타 테이블및 참조하는 모든 테이블에 계단식으로 배열기타 테이블외래 키 제약 조건을 통해:

토토 커뮤니티 othertable CASCADE;

호환성

SQL:2008 표준에는 다음이 포함됩니다.잘라내기구문이 포함된 명령토토 커뮤니티 TABLE테이블 이름. 조항계속 ID/다시 시작 신원또한 해당 표준에 나타나지만 약간 다르지만 관련된 의미. 동시성 동작 중 일부 이 명령은 표준에 따라 구현 정의된 상태로 유지됩니다. 따라서 위의 참고 사항을 고려하고 다른 참고 사항과 비교해야 합니다. 필요한 경우 구현합니다.