이 섹션에서 작동하는 기능을 설명합니다배트맨 토토 개체, 배트맨 토토 생성기라고도합니다생성. 시퀀스 객체는 일반적으로 생성하는 데 사용됩니다테이블, 획득하기위한 간단하고 멀티 우스터-안전 방법을 제공합니다
표 9-40. 배트맨 토토 기능
function | 반환 유형 | 설명 |
---|---|---|
currval (regclass) |
bigint | 가장 최근에 얻은 반환 값NextVal 지정된 배트맨 토토 |
lastVal () |
bigint | 가장 최근에 얻은 반환 값NextVal 모든 배트맨 토토의 경우 |
NextVal (regclass) |
bigint | 사전 배트맨 토토 및 새로운 가치를 반환 |
setVal (regclass,
bigint) |
bigint | 시퀀스의 현재 값 설정 |
setVal (regclass,
bigint, 부울) |
bigint | 시퀀스의 현재 값을 설정하고IS_CALLED플래그 |
시퀀스 함수에 의해 작동 할 시퀀스는 다음과 같습니다.regclass인수입니다pg_class시스템 카탈로그. 당신은 그럴 필요가 없습니다regclass데이터 유형의 입력 변환기가 작업을 수행합니다SQL이름, 문자열이 소문자로 변환됩니다.
NextVal ( 'foo')배트맨 토토에서 작동fooNextVal ( 'foo')배트맨 토토에서 작동fooNextVal ( ' "foo"')배트맨 토토에서 작동foo
필요한 경우 배트맨 토토 이름을 스키마 자격으로 사용할 수 있습니다.
NextVal ( 'myschema.foo')운영fooNextVal ( ' "myschema".foo')위와 동일NextVal ( 'foo')검색 경로 검색foo
참조섹션 8.16더 많은 것regclass.
참고 :전PostgreSQL8.1, 인수텍스트13119_13130regclass및 위의 설명텍스트toregclass함수가 있기 전에
배트맨 토토 기능의 인수를regclass. 이것은 정말로 단지 단지이기 때문입니다"조기 바인딩"행동이 일반적으로 바람직합니다"늦게서열 참조가 해결되는 곳텍스트대신 상수regclass:
NextVal ( 'foo':: text)foo런타임을 찾아 보았습니다늦은 바인딩은 지원되는 유일한 행동이었다.PostgreSQL전에 릴리스
물론 배트맨 토토 함수의 인수는
가용 순서 함수는 다음과 같습니다.
NextVal
배트맨 토토 개체를 다음 값으로 전진시키고 반환NextVal
동시에, 각각은 별개의 배트맨 토토를 안전하게받습니다
기본값으로 시퀀스 객체가 생성 된 경우NextVal
통화는 연속으로 반환됩니다배트맨 토토 만들기명령; 보다
중요 :동시 차단을 피하기 위해
NextVal
작동은 결코 롤백되지 않습니다. 즉, 한 번 값입니다NextVal
나중에 중단. 이것은 그것을 의미합니다"구멍"지정된 순서로
Currval
가장 최근에 얻은 값을 반환NextVal
전류 에서이 배트맨 토토의 경우NextVal
이것을 요구 한 적이 없습니다NextVal
현재 세션 이후
LastVal
가장 최근에 반환 된 값을 반환NextVal
현재 세션에서. 이것Currval
NextVal
현재 세션에서. 그것은LastVal
ifNextVal
아직 없었습니다
setVal
배트맨 토토 객체의 카운터 값을 재설정합니다. 그만큼last_value지정된 값에 대한 필드IS_CALLEDField totrue, 다음을 의미NextVal
Currval
IS_CALLED둘 중 하나로 설정할 수 있습니다true또는거짓.
true거짓, 다음NextVal
지정된 것을 정확히 반환합니다NextVal
.Currval
이 경우에는 변경되지 않았습니다 (이것은
SELECT SETVAL ( 'foo', 42);다음NextVal
43SELECT SETVAL ( 'foo', 42, true);위와 동일SELECT SETVAL ( 'foo', 42, false);다음NextVal
42 복귀합니다.
결과는setVal
는 두 번째 가치입니다
중요 :배트맨 토토이기 때문에
setVal