개발 버전 :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 / 7.4 / 7.3 / 7.2
이 문서는 지원되지 않는 버전의 PostgreSQL을위한 것입니다.
당신은에 대해 같은 페이지를 볼 수 있습니다PostgreSQL : 문서 : 17 : 9.17. 스포츠 토토 베트맨 조작 기능버전 또는 위에 나열된 다른 지원 버전 중 하나입니다.

9.15. 시퀀스 조작

이 섹션에서 작동하는 기능을 설명합니다배트맨 토토 개체, 배트맨 토토 생성기라고도합니다생성. 시퀀스 객체는 일반적으로 생성하는 데 사용됩니다테이블, 획득하기위한 간단하고 멀티 우스터-안전 방법을 제공합니다

표 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현재 세션에서. 이것CurrvalNextVal현재 세션에서. 그것은LastValifNextVal아직 없었습니다

setVal

배트맨 토토 객체의 카운터 값을 재설정합니다. 그만큼last_value지정된 값에 대한 필드IS_CALLEDField totrue, 다음을 의미NextValCurrvalIS_CALLED둘 중 하나로 설정할 수 있습니다true또는거짓. true거짓, 다음NextVal지정된 것을 정확히 반환합니다NextVal.Currval이 경우에는 변경되지 않았습니다 (이것은

SELECT SETVAL ( 'foo', 42);다음NextVal43SELECT SETVAL ( 'foo', 42, true);위와 동일SELECT SETVAL ( 'foo', 42, false);다음NextVal42 복귀합니다.

결과는setVal는 두 번째 가치입니다

중요 :배트맨 토토이기 때문에setVal