개발 버전 :Devel
지원되지 않는 버전 :12 / 11 / 10 / 9.6 / 9.5 / 9.4 / 9.3 / 9.2 / 9.1 / 9.0 / 8.4 / 8.3 / 8.2 / 8.1 / 8.0
이 문서는 지원되지 않는 버전의 PostgreSQL 용입니다.
당신은에 대해 같은 페이지를 볼 수 있습니다PostgreSQL : 문서 : 17 : 36.7. 사설 토토 사이트 변동성 범주버전 또는 위에 나열된 다른 지원 버전 중 하나입니다.

32.6. 사설 토토 변동성

모든 함수가 a변동성가능성이있는 분류휘발성, 안정적인또는불변. 휘발성이면 기본값입니다.함수 만들기명령은 그렇지 않습니다

  • A 휘발성함수는 할 수 있습니다

  • A 안정적인함수는 수정할 수 없습니다휘발성인덱스 스캔에서 사설 토토

  • an불변함수는 할 수 없습니다선택 ... 여기서 x = 2 + 2can선택 ..., 정수의 기본 사설 토토이기 때문에불변.

최적의 최적화 결과를 위해서는 사설 토토에 레이블을 지정해야합니다

부작용이있는 모든 함수필수레이블이휘발성, 호출을 최적화 할 수 없습니다휘발성값이 내부에서 변경 될 수있는 경우random (), currval (), TimeOfday ().

안정적인and불변간단한 대화식 쿼리를 고려할 때 카테고리불변실제로 그렇지 않은 경우pl/pgsql).

MVCC의 스냅 샷 동작으로 인해 (참조12 장) 전용 함수select명령은 안전하게 표시 될 수 있습니다안정적인, 테이블 중에서 선택하더라도PostgreSQLa안정적인설정된 스냅 샷을 사용한 함수current_timestamp사설 토토 가족 자격

동일한 스냅 샷 동작이 사용됩니다select내 명령불변함수. 일반적으로 현명하지 않습니다불변불변성이기 때문에 기능PostgreSQL그것을 시행하지 않습니다

일반적인 오류는 함수에 레이블을 지정하는 것입니다불변결과가 a에 의존 할 때TimeZone설정.안정적인대신.

참고 :PostgreSQL릴리스 8.0, 요구 사항안정적인and불변함수는 데이터베이스를 수정할 수 없습니다select. (이것은 완전히 아닙니다휘발성수정하는 사설 토토안정적인또는불변함수는 데이터베이스 변경 사항이