47.5. 데이터 변경 가시성

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

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

    SELECT * FROM a에 삽입;

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

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

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

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

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

수정사항 제출

문서에 올바르지 않은 내용이 있으면 일치하지 않습니다. 특정 기능에 대한 경험이 있거나 추가 설명이 필요한 경우 이용해주세요이 양식문서 문제를 보고합니다.