Call
익명 코드 블록뿐만 아니라 명령 (do
명령), 명령을 사용하여 롤 토토을 종료 할 수 있습니다커밋
and롤백
. 롤 토토이 이러한 명령을 사용하여 종료 된 후 새 롤 토토이 자동으로 시작되므로 별도는 없습니다롤 토토 시작
명령. (시작
andEND
pl/pgsql에서 다른 의미가 있습니다.)
간단한 예는 다음과 같습니다.
절차 생성 롤 토토 _test1 ()
새로운 트랜잭션은 트랜잭션 격리 수준과 같은 기본 트랜잭션 특성으로 시작됩니다. 트랜잭션이 루프에 커밋되는 경우 이전 특성과 동일한 특성으로 자동 트랜잭션을 자동으로 시작하는 것이 바람직 할 수 있습니다.커밋 및 체인
and롤백 및 체인
이것을 달성하십시오.
롤 토토 제어가 가능합니다Call
또는do
최상위 또는 중첩에서의 호출Call
또는do
다른 중재 명령이없는 호출. 예를 들어, 통화 스택이 인 경우call proc1 ()
→ call proc2 ()
→ call proc3 ()
, 두 번째 및 세 번째 절차는 롤 토토 제어 조치를 수행 할 수 있습니다. 하지만 통화 스택이call proc1 ()
→ func2 () 선택
→ call proc3 ()
, 그리고 마지막 절차는 거래 제어를 수행 할 수 없습니다.select
커서 루프에 특별 고려 사항이 적용됩니다. 이 예를 고려하십시오 :
절차 생성 롤 토토 _test2 ()
일반적으로 커서는 트랜잭션 커밋에서 자동으로 닫힙니다. 그러나 이와 같은 루프의 일부로 생성 된 커서는 첫 번째로 보류 가능한 커서로 자동 변환됩니다.커밋
또는롤백
. 즉, 커서가 첫 번째로 완전히 평가되었음을 의미합니다.커밋
또는롤백
행별로 행 대신. 루프 후에 커서가 여전히 자동으로 제거되므로 대부분 사용자에게는 보이지 않습니다.
롤 토토 명령은 읽기 전용이 아닌 명령에 의해 구동되는 커서 루프에서 허용되지 않습니다 (예 :업데이트 ... 반환
).
롤 토토은 예외 처리기가있는 블록 내부에서 종료 될 수 없습니다.
문서에 올바르지 않은 내용이 있으면 일치하지 않습니다.이 양식문서 문제를보고하려면