>25_word_end<되는 버전 :>71_word_end<(17>74_word_end<16 / 15 / 14 / 13
>86_word_end<18 / >89_word_end<
>25_word_end<되지 않는 버전 :12 / 11

>118_word_end<

>147_word_end<>148_word_end<>149_word_end<>150_word_end<>151_word_end<>152_word_end<>153_word_end<>154_word_end<>155_word_end<>156_word_end<>157_word_end<>152_word_end<endpl/pgsql에서 다른 의미가 있습니다.)

간단한 예는 >134_word_end<과 같습니다.

프로 시저 생성 트랜잭션 _test1 ()
언어 plpgsql
$$로
>157_word_end<하다
    0..9 루프
        test1 (a) 값 (i)에 삽입;
        I % 2 = 0이면
            저지르다;
        또 다른
            >153_word_end<;
        끝 IF;
    엔드 루프;
끝;
$$;

>147_word_end< transaction_test1 ();

새로운 트랜잭션은 트랜잭션 격리 수준과 같은 기본 트랜잭션 특성으로 >157_word_end<됩니다. 트랜잭션이 루프에 >151_word_end<되는 경우 >122_word_end< 특성과 동일한 특성으로 자동 트랜잭션을 자동으로 >157_word_end<하는 것이 바람직 할 수 있습니다. 명령>151_word_end< 및 체인>152_word_end<>153_word_end< 및 체인이것을 달성하십시오.

배트맨 토토 제어가 가능합니다.>147_word_end<또는>149_word_end<최상위 또는 중첩에서의 호출Call또는>149_word_end<다른 중재 명령이없는 호출. 예를 들어, 통화 스택이 인 경우Call Proc1 ()Call Proc2 ()>147_word_end< proc3 (), 두 번째 및 세 번째 절차는 배트맨 토토 제어 조치를 수행 할 수 있습니다. 하지만 통화 스택이>147_word_end< proc1 ()func2 () 선택>147_word_end< proc3 (), 마지막 절차는 거래 제어를 수행 할 수 없습니다.select

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

프로 시저 작성 트랜잭션 _test2 ()
언어 plpgsql
$$로
선언하다
    R 기록;
>157_word_end<하다
    선택 *의 r for select *에서 test2 order by x loop
        test1 (a) 값 (r.x)에 삽입;
        저지르다;
    엔드 루프;
끝;
$$;

>147_word_end< transaction_test2 ();

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

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

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

정정 제출

문서에 맞지 않는 내용이 있으면 일치하지 않습니다. 특정 기능에 대한 귀하의 경험 또는 추가 설명이 필요합니다. 사용이 양식문서 문제를보고하려면