이 문서는 지원되지 않는 버전의 PostgreSQL을위한 것입니다.
당신은에 대해 같은 페이지를 볼 수 있습니다PostgreSQL : 문서 : 17 : 9.17. 스포츠 무지개 토토 베트맨 조작 기능버전 또는 위에 나열된 다른 지원 버전 중 하나입니다.

9.15. 시퀀스 조작 기능

이 섹션을 설명합니다PostgreSQL의 작동 기능무지개 토토 개체. 무지개 토토 객체 (또한 무지개 토토 생성기 또는 단지 무지개 토토)는 특별합니다 로 만든 단일 줄 테이블무지개 토토 만들기. 무지개 토토 객체 일반적으로 행의 행에 대한 고유 식별자를 생성하는 데 사용됩니다. 테이블. 나열된 무지개 토토 함수테이블 9-38, 획득하기위한 간단하고 멀티 우스터-안전 방법을 제공합니다 무지개 토토 객체의 연속 무지개 토토 값.

표 9-38. 무지개 토토 기능

기능 반환 유형 설명
Currval(Regclass) bigint 가장 최근에 얻은 반환 값NextVal지정된 무지개 토토
LastVal() bigint 가장 최근에 얻은 반환 값NextVal모든 무지개 토토의 경우
NextVal(Regclass) bigint 사전 무지개 토토 및 새로운 값을 반환
setVal(RegClass, bigint) bigint 무지개 토토의 현재 값 설정
setVal(RegClass, bigint, 부울) bigint 무지개 토토의 현재 값을 설정하고IS_CALLED플래그

시퀀스 기능 호출에 의해 작동 할 순서는 다음과 같습니다. specified by aRegclass인수입니다 의 무지개 토토의 OID 만PG_CLASS시스템 카탈로그. 당신은 그럴 필요가 없습니다 그러나 이후로 Oid를 직접 찾아보세요.RegclassData Type의 입력 변환기가 작업을 수행합니다 당신을 위한. 단일 따옴표로 둘러싸인 무지개 토토 이름을 작성하고 문자 그대로 상수처럼 보입니다. 일부를 달성하기 위해 평범한 취급과의 호환SQL이름, 문자열이 변환됩니다 서열 주위에 이중 인용문이 포함되지 않는 한 소문자 이름. 따라서:

NextVal ( 'foo')무지개 토토에서 작동fooNextVal ( 'foo')무지개 토토에서 작동fooNextVal ( ' "foo"')무지개 토토에서 작동foo

필요한 경우 무지개 토토 이름은 스키마 자격을 사용할 수 있습니다.

NextVal ( 'myschema.foo')운영myschema.fooNextVal ( ' "MySchema".foo')위와 동일NextVal ( 'foo')검색 검색 경로foo

참조섹션 8.16더 많은 경우 에 대한 정보RegClass.

참고 :PostgreSQL8.1, 인수 시퀀스 기능은 유형입니다.텍스트, 아니다Regclass및 위에서 설명한 것 텍스트 문자열에서 OID 값으로 변환하면 각 통화 중에 시간을 달성하십시오. 거꾸로 호환성을 위해서 시설은 여전히 ​​존재하지만 내부적으로는 이제 의 암묵적 강요텍스트toRegClass함수가 있기 전에 호출.

시퀀스 기능의 인수를 불안정한 문자열, 그것은 유형의 상수가됩니다Regclass. 이것은 정말로 단지 단지이기 때문입니다 OID는 원래 식별 된 무지개 토토에도 불구하고 추적합니다 나중에 변경, 스키마 재 할당 등. this"초기 바인딩"행동이 일반적으로 바람직합니다 열 기본값 및보기에서 시퀀스 참조. 하지만 때때로 당신은 원할 것입니다"늦게 제본"서열 참조가 해결되는 곳 런타임. 늦은 바인딩 행동을 얻으려면 상수를 강요하십시오 A로 저장텍스트대신 상수Regclass:

NextVal ( 'foo':: text)foo런타임을 찾아 보았습니다

늦은 바인딩은 지원되는 유일한 행동이었다.PostgreSQL전에 릴리스 8.1, 따라서 의미론을 보존하기 위해이 작업을 수행해야 할 수도 있습니다. 오래된 응용 프로그램의.

물론 시퀀스 함수의 인수는 일정뿐만 아니라 표현. 텍스트 표현식 인 경우 그러면 암시 적 강요는 런타임을 초래합니다 조회.

가용 순서 함수는 다음과 같습니다.

NextVal

무지개 토토 개체를 다음 값으로 전진시키고 반환 그 가치. 이것은 원자 적으로 완료됩니다 세션 실행NextVal동시에, 각각은 별개의 무지개 토토를 안전하게받을 것입니다 값.

Currval

가장 최근에 얻은 값을 반환NextVal전류 의이 순서에 대해 세션. (오류가보고 된 경우NextVal이것을 요구 한 적이 없습니다 이 세션의 순서.) 이것이 바로 이에 주목하십시오 세션-로컬 값을 반환하면 예측 가능성이 있습니다 다른 세션이 실행되었는지 여부에 답하십시오NextVal전류 이후 세션은.

LastVal

가장 최근에 반환 된 값을 반환NextVal현재 세션에서. 이것 함수는 동일합니다Currval인수로서의 무지개 토토 이름은 마지막 순서NextVal현재에 사용되었습니다 세션. 전화하는 것은 오류입니다LastValifNextVal아직도 호출되지 않았습니다 현재 세션.

setVal

무지개 토토 객체의 카운터 값을 재설정합니다. 그만큼 2 개의 파라미터 양식이 무지개 토토를 설정합니다last_value지정된 값에 대한 필드 설정IS_CALLEDField toTrue, 다음을 의미NextVal값을 반환하기 전에 무지개 토토.Currval지정된 값. 3 개의 가라미터 형태로is_called중 하나를 설정할 수 있습니다True또는거짓. True2 파라미터 형태. 로 설정된 경우false, 다음NextVal지정된 것을 정확하게 반환합니다 가치와 무지개 토토 진보는 수행원NextVal. 또한,Currval이 경우에는 변경되지 않았습니다 (이것은 8.3 이전의 행동에서의 변화입니다). 예를 들어,

SELECT SETVAL ( 'foo', 42);다음NextVal43SELECT SETVAL ( 'foo', 42, true);위와 동일SELECT SETVAL ( 'foo', 42, false);다음NextVal42

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

기본 매개 변수로 무지개 토토 객체가 생성 된 경우NextVal전화가 돌아옵니다 1로 시작하는 연속적인 값. 다른 행동은 될 수 있습니다 에서 특수 매개 변수를 사용하여 획득무지개 토토 만들기명령; 그것을보십시오 자세한 내용은 명령 참조 페이지입니다.

중요 :동시의 차단을 피하기 위해 동일한 순서에서 숫자를 얻는 거래, aNextVal운영은 절대 아닙니다 롤백; that is, once a value has been fetched it is 사용한 트랜잭션이라도 사용 된 것으로 간주됩니다.NextVal나중에 중단. 이것 중단 된 거래가 사용하지 않을 수 있음을 의미"구멍"의 순서로 할당 된 값.setVal운영은 결코 롤백되지 않습니다.