최상위 레벨 또는 익명 코드 블록에서 호출된 프로시저에서(DOcommand)를 최상위 레벨에서 호출하면 트랜잭션을 제어할 수 있습니다. 현재 트랜잭션을 커밋하려면 다음을 호출하세요.plpy.commit(). 현재 트랜잭션을 롤백하려면 다음을 호출하세요.plpy.rollback(). (SQL 명령을 실행할 수 없다는 점에 유의하세요.커밋또는롤백경유plpy.execute또는 유사합니다. 이 기능을 이용해서 해야 합니다.) 트랜잭션이 종료되면 자동으로 새로운 트랜잭션이 시작되므로 이에 대한 별도의 기능은 없습니다.
다음은 예입니다:
프로시저 생성 transaction_test1()
언어 plpythonu
AS $$
i가 범위(0, 10)에 있는 경우:
plpy.execute("테스트 1에 삽입 (a) 값 (%d)" % i)
내가 % 2 == 0인 경우:
plpy.commit()
그 외:
plpy.롤백()
$$;
전화 transaction_test1();
명시적인 하위 트랜잭션이 활성화되면 트랜잭션을 종료할 수 없습니다.