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

9.16. 시퀀스 조작 기능

이 섹션에서 작동하는 기능을 설명합니다스포츠 토토 베트맨 개체, 스포츠 토토 베트맨 생성기라고도합니다 또는 스포츠 토토 베트맨 만. 스포츠 토토 베트맨 객체는 특별한 단일 열 테이블입니다 로 생성PostgreSQL : 문서. 스포츠 토토 베트맨 객체는 일반적으로 고유 식별자를 생성하는 데 사용됩니다 테이블 행의 경우. 나열된 스포츠 토토 베트맨 함수표 9-42, 연속적으로 얻기위한 간단하고 멀티 우스저 안전 방법을 제공하십시오 스포츠 토토 베트맨 객체의 스포츠 토토 베트맨 값.

표 9-42. 시퀀스 기능

기능 반환 유형 설명
currval (Regclass) bigint 가장 최근에 얻은 반환 값NextVal지정된 스포츠 토토 베트맨
lastVal () bigint 가장 최근에 얻은 반환 값NextVal모든 스포츠 토토 베트맨의 경우
NextVal (RegClass) bigint 사전 스포츠 토토 베트맨 및 새로운 가치를 반환
setVal (Regclass, bigint) bigint 스포츠 토토 베트맨의 현재 값 설정
setVal (RegClass, bigint, 부울) bigint 스포츠 토토 베트맨의 현재 값을 설정하고is_called플래그

스포츠 토토 베트맨 함수에 의해 작동 할 스포츠 토토 베트맨는 다음과 같습니다. A에 의해 지정RegClass인수입니다 단순히의 스포츠 토토 베트맨의 OIDPG_CLASS시스템 카탈로그. 당신은 볼 필요가 없습니다 그러나 이후로 Oid를 손으로 올려RegClass데이터 유형의 입력 변환기가 작업을 수행합니다 당신을 위한. 단일 따옴표로 둘러싸인 스포츠 토토 베트맨 이름을 작성하십시오. 문자 그대로 상수처럼 보입니다. 와의 호환성 평범한 취급SQL이름, 문자열은 포함하지 않는 한 소문자로 변환됩니다. 스포츠 토토 베트맨 이름 주위의 이중 인용문. 따라서:

NextVal ( 'foo')스포츠 토토 베트맨에서 작동fooNextVal ( 'foo')스포츠 토토 베트맨에서 작동fooNextVal ( ' "foo"')스포츠 토토 베트맨에서 작동foo

필요한 경우 스포츠 토토 베트맨 이름을 스키마 자격으로 사용할 수 있습니다.

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

참조섹션 8.18더 많은 것 에 대한 정보Regclass.

참고 :postgresql8.1, 시퀀스 함수의 인수는 유형이었다텍스트, 아님Regclass및 위에서 설명한 텍스트 문자열에서 OID 값으로의 변환 각 통화 중에 실행 시간에 발생합니다. 뒤로 호환성,이 시설은 여전히 ​​존재하지만 내부적으로는 지금입니다. 암시 적 강요로 처리텍스트toRegClass함수가 호출되기 전에.

시퀀스 기능의 인수를 불안정한 문자열, 그것은 유형의 상수가됩니다Regclass. 이것은 정말로 단지 OID이기 때문에 그럴 것입니다 나중에 이름을 변경했지만 원래 식별 된 스포츠 토토 베트맨를 추적합니다. 스키마 재 할당 등이"일찍 제본"행동은 일반적으로 시퀀스에 바람직합니다 열의 기본값 및보기에서 참조. 그러나 때때로 당신은 할 수도 있습니다 원하다"늦은 바인딩"시퀀스 참조는 실행 시간에 해결됩니다. 늦은 바인딩 행동을 얻으려면 상수를 a로 저장하도록 강요텍스트대신 상수Regclass:

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

늦은 바인딩은 지원되는 유일한 행동이었다.PostgreSQL8.1 전에 출시됩니다 오래된 의미를 보존하려면이 작업을 수행해야 할 수도 있습니다. 응용 프로그램.

물론, 시퀀스 함수의 인수는 일정뿐만 아니라 표현. 텍스트 표현이라면 암시 적 강요는 런타임 조회를 초래할 것입니다.

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

NextVal

스포츠 토토 베트맨 객체를 다음 값으로 전진시키고 반환 값. 이것은 원자 적으로 완료됩니다 : 여러 세션이 실행 되더라도NextVal동시에, 각각의 의지 별개의 스포츠 토토 베트맨 값을 안전하게받습니다.

기본 매개 변수로 스포츠 토토 베트맨 객체가 생성 된 경우 연속NextVal통화가 반환됩니다 1로 시작하는 연속적인 값. 다른 동작을 얻을 수 있습니다. 에서 특수 매개 변수를 사용하여스포츠 토토 베트맨 만들기명령; 그것을보십시오 자세한 내용은 명령 참조 페이지입니다.

중요 :17131_17222NextVal작동은 결코 롤백되지 않습니다. 즉, 값이 가져 오면 사용되는 경우에도 를 한 거래NextVal나중에 중단. 이는 중단 된 거래가 떠날 수 있음을 의미합니다 사용하지 않는"구멍"의 순서로 할당 된 값.

Currval

가장 최근에 얻은 값을 반환NextVal현재 세션 에서이 스포츠 토토 베트맨의 경우. (오류가보고 된 경우NextVal이 세션에서는이 스포츠 토토 베트맨를 요구하지 않았습니다.) 세션-로컬 값을 반환하고 있으며 예측 가능한 답변을 제공합니다. 다른 세션이 실행되었는지 여부NextVal현재 세션이 이래.

LastVal

가장 최근에 반환 된 값을 반환NextVal현재 세션에서. 이 기능은입니다 동일Currval를 제외하고 스포츠 토토 베트맨 이름을 인수로 취하는 대신 에 사용 된 마지막 순서 값NextVal현재 세션에서. 오류입니다 부르다LastValifNextVal아직 현재에서 호출되지 않았습니다 세션.

setVal

스포츠 토토 베트맨 객체의 카운터 값을 재설정합니다. 2 파라미터 양식 스포츠 토토 베트맨를 설정합니다last_value필드 지정된 값으로 설정하고IS_CALLEDField toTrue, 다음을 의미NextVal의지 값을 반환하기 전에 스포츠 토토 베트맨를 전진 시키십시오. 보고 된 가치 에 의해Currval지정된 값. 3 개의 가라미터 형태로IS_CALLEDtrue또는거짓. True2 파라미터 형태와 동일한 효과가 있습니다. 로 설정된 경우거짓, 다음NextVal정확히 반환합니다 지정된 값 및 스포츠 토토 베트맨 발전이 시작됩니다 수행원NextVal. 또한, 보고 한 가치Currval그렇지 않습니다 이 경우 변경되었습니다 (이것은 8.3 이전 동작에서 변화입니다). 을 위한 예,

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

결과는setValis 두 번째 논쟁의 가치.

중요 :스포츠 토토 베트맨는 비 트랜잭션이기 때문에 에 의해 변경됨setVal취소되지 않습니다 트랜잭션이 롤백 된 경우