이 문서는 지원되지 않는 PostgreSQL 버전에 대한 것입니다.
다음에 대한 동일한 페이지를 보고 싶을 수도 있습니다.토토 캔 : 문서 : 17 : 45.5. 데이터 변경의 가시성버전 또는 위에 나열된 다른 지원 버전 중 하나를 사용하세요.

46.4. 데이터 변경 가시성

다음 규칙은 SPI(또는 기타 C 함수)를 사용하는 함수의 데이터 변경 가시성을 관리합니다.

  • SQL 명령을 실행하는 동안 명령에 의해 이루어진 모든 데이터 변경 사항은 명령 자체에 보이지 않습니다. 예를 들어, 다음과 같습니다:

    SELECT * FROM a에 삽입;

    삽입된 행은 다음에 보이지 않습니다.선택부분.

  • C 명령에 의한 변경 사항은 C 내부에서 시작되었는지(C 실행 중) 또는 C가 완료된 후에 시작되었는지에 관계없이 C 이후에 시작되는 모든 명령에 표시됩니다.

  • SQL 명령(일반 함수 또는 트리거)에 의해 호출되는 함수 내에서 SPI를 통해 실행되는 명령은 SPI에 전달된 읽기/쓰기 플래그에 따라 위 규칙 중 하나를 따릅니다. 읽기 전용 모드에서 실행되는 명령은 첫 번째 규칙을 따릅니다. 호출 명령의 변경 사항을 볼 수 없습니다. 읽기-쓰기 모드에서 실행되는 명령은 두 번째 규칙을 따릅니다. 즉, 지금까지 변경된 모든 내용을 볼 수 있습니다.

  • 모든 표준 절차적 언어는 함수의 변동성 속성에 따라 SPI 읽기-쓰기 모드를 설정합니다. 명령안정적그리고불변기능은 읽기 전용 모드에서 수행되지만 다음 명령은휘발성기능은 읽기-쓰기 모드에서 수행됩니다. C 함수 작성자가 이 규칙을 위반할 수 있지만 그렇게 하는 것은 좋은 생각이 아닐 것입니다.

다음 섹션에는 이러한 규칙의 적용을 보여주는 예가 포함되어 있습니다.