이 섹션을 설명합니다postgresql의 작동 기능사설 토토 개체. 사설 토토 객체 (또한 사설 토토 생성기 또는 단지 사설 토토)는 특별합니다 로 만든 단일 줄 테이블생성 순서. 사설 토토 객체는 일반적으로 생성하는 데 사용됩니다 테이블 행의 고유 식별자. 사설 토토 기능, 에 나열됨테이블 9-34, 획득하기위한 간단하고 멀티 층-안전 방법을 제공합니다 사설 토토 객체의 연속 사설 토토 값.
표 9-34. 사설 토토 기능
기능 | 반환 유형 | 설명 |
---|---|---|
NextVal (텍스트) |
bigint | 사전 사설 토토 및 새로운 가치를 반환 |
Currval (텍스트) |
bigint | 가장 최근에 얻은 반환 값NextVal |
setVal (텍스트,
bigint) |
bigint | 시퀀스의 현재 값 설정 |
setVal (텍스트,
bigint, 부울) |
bigint | 시퀀스의 현재 값을 설정하고IS_CALLED플래그 |
크게 역사적 이유로 작동 할 순서는 시퀀스 기능 호출에 의해 텍스트-스트링에 의해 지정됩니다 논쟁. 처리와의 호환성을 달성합니다 평범한SQL이름, 시퀀스 기능은 논증을 소문자로 변환합니다 문자열은 두 번 인용됩니다. 따라서
NextVal ( 'foo')사설 토토에서 작동fooNextVal ( 'foo')사설 토토에서 작동fooNextVal ( ' "foo"')사설 토토에서 작동foo
필요한 경우 사설 토토 이름을 스키마 자격으로 사용할 수 있습니다.
NextVal ( 'myschema.foo')운영myschema.fooNextVal ( ' "myschema".foo')위와 동일NextVal ( 'foo')검색 경로 검색foo
물론 텍스트 인수는 간단한 문자뿐만 아니라 때때로 표현 유용한.
가용 순서 함수는 다음과 같습니다.
NextVal
사설 토토 개체를 다음 값으로 전진시키고 반환
그 가치. 이것은 원자 적으로 완료됩니다
세션 실행NextVal
동시에, 각각은 별개의 사설 토토를 안전하게받습니다
값.
Currval
가장 최근에 얻은 값을 반환NextVal
전류 에서이 사설 토토의 경우
세션. (오류가보고 된 경우NextVal
이것을 요구 한 적이 없습니다
이 세션의 순서.) 이것이 바로 이에 주목하십시오
세션-로컬 값을 반환하면 예측 가능성이 있습니다
다른 세션이 실행되었는지 여부에 답하십시오NextVal
전류 이후
세션은.
setVal
사설 토토 객체의 카운터 값을 재설정합니다. 그만큼
2 개의 파라미터 양식이 사설 토토를 설정합니다last_value지정된 값에 대한 필드 및
설정is_called필드true, 다음을 의미합니다NextVal
값을 반환하기 전에 사설 토토. 3 파라미터에서
형태,IS_CALLED중 하나를 설정할 수 있습니다true또는거짓. 로 설정된 경우거짓, 다음NextVal
지정된 것을 정확하게 반환합니다
가치와 사설 토토 진보는
수행원NextVal
. 을 위한
예,
SELECT SETVAL ( 'foo', 42);다음NextVal
43SELECT SETVAL ( 'foo', 42, true);위와 동일SELECT SETVAL ( 'foo', 42, false);다음NextVal
42
결과는setVal
는 두 번째 가치입니다
논쟁.
중요 :동시의 차단을 피하기 위해 동일한 순서에서 숫자를 얻는 거래, a
NextVal
운영은 절대로 아닙니다 롤백; 즉, 일단 가치가 가져 오면 사용한 트랜잭션이라도 사용 된 것으로 간주됩니다.NextVal
나중에 중단. 이것 중단 된 거래가 사용하지 않을 수 있음을 의미"구멍"지정된 값 순서에서.setVal
운영은 결코 아닙니다 롤백.
기본 매개 변수로 사설 토토 객체가 생성 된 경우NextVal
전화가 돌아올 것입니다
1로 시작하는 연속적인 값. 다른 행동은 될 수 있습니다
에서 특수 매개 변수를 사용하여 획득사설 토토 만들기명령; 그것을보십시오
자세한 내용은 명령 참조 페이지입니다.