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

세이브포인트 출시

RELEASE SAVEPOINT — 이전에 정의된 저장점 해제

시놉시스

릴리스 [ 저장포인트 ]토토 꽁 머니_name

설명

세이브포인트 출시이름이 지정된 저장점과 이름이 지정된 저장점 이후에 생성된 모든 활성 저장점을 해제하고 해당 리소스를 해제합니다. 아직 롤백되지 않은 저장점 생성 이후에 이루어진 모든 변경 사항은 명명된 저장점이 생성될 때 활성화된 트랜잭션 또는 저장점에 병합됩니다. 이후 변경사항세이브포인트 출시또한 이 활성 트랜잭션 또는 저장점의 일부가 됩니다.

매개변수

토토 꽁 머니_name

해제할 저장점의 이름.

참고

이전에 정의되지 않은 저장점 이름을 지정하는 것은 오류입니다.

트랜잭션이 중단된 상태에서는 저장점을 해제할 수 없습니다. 그렇게 하려면 다음을 사용하세요.세이브포인트로 롤백.

여러 개의 저장점이 동일한 이름을 갖는 경우 가장 최근에 정의된 출시되지 않은 저장포인트만 출시됩니다. 반복되는 명령은 점차적으로 오래된 저장점을 해제합니다.

저장점을 설정하고 나중에 해제하려면:

시작;
    INSERT INTO table1 VALUES (3);
    토토 꽁 머니 my_토토 꽁 머니;
    INSERT INTO table1 VALUES (4);
    RELEASE 토토 꽁 머니 my_토토 꽁 머니;
커밋;

위 트랜잭션은 3과 4를 모두 삽입합니다.

여러 개의 중첩된 하위 트랜잭션이 있는 더 복잡한 예:

시작;
    INSERT INTO table1 VALUES (1);
    세이브포인트 sp1;
    INSERT INTO table1 VALUES (2);
    세이브포인트 sp2;
    INSERT INTO table1 VALUES (3);
    세이브포인트 sp2 릴리스;
    INSERT INTO table1 VALUES (4))); -- 오류가 발생합니다.

이 예에서 애플리케이션은 저장점 해제를 요청합니다.sp2, 3을 삽입했습니다. 그러면 삽입의 트랜잭션 컨텍스트가 다음으로 변경됩니다.sp1. 값 4를 삽입하려고 시도하는 문에서 오류가 발생하면 2와 4의 삽입은 현재 롤백된 동일한 저장점에 있고 값 3은 동일한 트랜잭션 컨텍스트에 있기 때문에 손실됩니다. 다른 모든 명령은 무시되므로 이제 애플리케이션은 다음 두 명령 중 하나만 선택할 수 있습니다.

롤백;
SAVEPOINT sp1로 롤백;

선택 중롤백값 1을 포함하여 모든 것을 중단하지만세이브포인트 sp1로 롤백값 1을 유지하고 트랜잭션을 계속할 수 있습니다.

호환성

이 명령은 다음을 준수합니다.SQL표준. 표준은 키워드를 지정합니다.세이브포인트필수이지만PostgreSQL생략이 가능합니다.