다음 규칙은 SPI (또는 기타 C 함수)를 사용하는 함수의 데이터 변경 가시성을 관리합니다.
SQL 명령을 실행하는 동안 명령에 의해 작성된 데이터 변경은 명령 자체에 보이지 않습니다. 예를 들어 :
SELECT *에 삽입 * a;
삽입 된 행은에 보이지 않습니다.select
part.
명령 C에 의한 변경 사항 C에서 시작된 모든 명령에 따라 C이 시작된 모든 명령에 표시됩니다.
SQL 명령 (일반 함수 또는 트리거)에서 호출 된 함수 내에서 SPI를 통해 실행 된 명령은 SPI에 전달 된 읽기/쓰기 플래그에 따라 위의 규칙 중 하나 또는 다른 규칙을 따릅니다. 읽기 전용 모드로 실행 된 명령은 첫 번째 규칙을 따릅니다. 호출 명령의 변경 사항을 볼 수 없습니다.
모든 표준 절차 언어는 함수의 휘발성 속성에 따라 SPI 읽기 쓰기 모드를 설정합니다. 명령안정적인
and불변
함수는 읽기 전용 모드에서 수행되며 명령은휘발성
함수는 읽기 쓰기 모드에서 수행됩니다. C 기능의 저자는이 컨벤션을 위반할 수 있지만 그렇게하는 것은 좋은 생각이 아닐 것입니다.
다음 섹션에는 이러한 규칙의 적용을 보여주는 예제가 포함되어 있습니다.
문서에 올바른 것이없는 것이 있으면 일치하지 않습니다.이 양식문서 문제를보고하려면