43.8. 거래 관리

Call익명 코드 블록뿐만 아니라 명령 (do명령), 명령을 사용하여 롤 토토을 종료 할 수 있습니다커밋and롤백. 롤 토토이 이러한 명령을 사용하여 종료 된 후 새 롤 토토이 자동으로 시작되므로 별도는 없습니다롤 토토 시작명령. (시작andENDpl/pgsql에서 다른 의미가 있습니다.)

간단한 예는 다음과 같습니다.

절차 생성 롤 토토 _test1 ()

새로운 트랜잭션은 트랜잭션 격리 수준과 같은 기본 트랜잭션 특성으로 시작됩니다. 트랜잭션이 루프에 커밋되는 경우 이전 특성과 동일한 특성으로 자동 트랜잭션을 자동으로 시작하는 것이 바람직 할 수 있습니다.커밋 및 체인and롤백 및 체인이것을 달성하십시오.

롤 토토 제어가 가능합니다Call또는do최상위 또는 중첩에서의 호출Call또는do다른 중재 명령이없는 호출. 예를 들어, 통화 스택이 인 경우call proc1 ()call proc2 ()call proc3 (), 두 번째 및 세 번째 절차는 롤 토토 제어 조치를 수행 할 수 있습니다. 하지만 통화 스택이call proc1 ()func2 () 선택call proc3 (), 그리고 마지막 절차는 거래 제어를 수행 할 수 없습니다.select

커서 루프에 특별 고려 사항이 적용됩니다. 이 예를 고려하십시오 :

절차 생성 롤 토토 _test2 ()

일반적으로 커서는 트랜잭션 커밋에서 자동으로 닫힙니다. 그러나 이와 같은 루프의 일부로 생성 된 커서는 첫 번째로 보류 가능한 커서로 자동 변환됩니다.커밋또는롤백. 즉, 커서가 첫 번째로 완전히 평가되었음을 의미합니다.커밋또는롤백행별로 행 대신. 루프 후에 커서가 여전히 자동으로 제거되므로 대부분 사용자에게는 보이지 않습니다.

롤 토토 명령은 읽기 전용이 아닌 명령에 의해 구동되는 커서 루프에서 허용되지 않습니다 (예 :업데이트 ... 반환).

롤 토토은 예외 처리기가있는 블록 내부에서 종료 될 수 없습니다.

정정 제출

문서에 올바르지 않은 내용이 있으면 일치하지 않습니다.이 양식문서 문제를보고하려면