이 문서는 지원되지 않는 PostgreSQL 버전에 대한 것입니다.
다음에 대한 동일한 페이지를 보고 싶을 수도 있습니다.PostgreSQL : 문서 : 17 : 9.17. 스포츠 토토 베트맨 조작 기능버전 또는 위에 나열된 다른 지원 버전 중 하나를 사용하세요.

9.16. 스포츠 토토 조작 함수

이 섹션에서는 다음 작업에 대한 기능을 설명합니다.스포츠 토토 객체, 스포츠 토토 생성기 또는 단순히 스포츠 토토라고도 합니다. 스포츠 토토 객체는 다음을 사용하여 생성된 특수 단일 행 테이블입니다.PostgreSQL : 문서 : 9.6 : 롤 토토 작성. 스포츠 토토 개체는 일반적으로 테이블 행에 대한 고유 식별자를 생성하는 데 사용됩니다. 다음에 나열된 스포츠 토토 함수표 9-46, 스포츠 토토 객체에서 연속적인 스포츠 토토 값을 얻기 위한 간단하고 다중 사용자에게 안전한 메서드를 제공합니다.

표 9-46. 스포츠 토토 함수

기능 반환 유형 설명
currval(regclass) 비긴트 가장 최근에 얻은 반환 값다음값지정된 스포츠 토토의 경우
마지막 값() 비긴트 가장 최근에 얻은 반환 값다음값모든 스포츠 토토에 대해
다음값(regclass) 비긴트 전진 스포츠 토토 및 새 값 반환
setval(regclass, 비긴트) 비긴트 스포츠 토토의 현재 값 설정
setval(regclass, 비긴트, 부울) bigint 스포츠 토토의 현재 값을 설정하고is_called플래그

스포츠 토토 함수에 의해 작동될 스포츠 토토는 다음으로 지정됩니다.regclass인수, 이는 단순히 스포츠 토토의 OID입니다.pg_class시스템 카탈로그. 그러나 OID를 직접 찾을 필요는 없습니다.regclass데이터 유형의 입력 변환기가 대신 작업을 수행합니다. 리터럴 상수처럼 보이도록 작은따옴표로 묶인 스포츠 토토 이름을 작성하기만 하면 됩니다. 일반 취급과의 호환성을 위해SQL이름, 스포츠 토토 이름 주위에 큰따옴표가 포함되어 있지 않으면 문자열은 소문자로 변환됩니다. 따라서:

nextval('foo')순차적으로 작동foonextval('FOO')순차적으로 작동foonextval('"Foo"')순서대로 작동

필요한 경우 스포츠 토토 이름은 스키마로 한정될 수 있습니다.

nextval('myschema.foo')작동myschema.foonextval('"myschema".foo')위와 동일nextval('foo')검색 경로 검색foo

참조섹션 8.18자세한 내용은regclass.

참고:이전PostgreSQL8.1, 스포츠 토토 함수의 인수 유형은 다음과 같습니다.텍스트, 아님regclass, 위에 설명된 텍스트 문자열에서 OID 값으로의 변환은 각 호출 중 런타임에 발생합니다. 이전 버전과의 호환성을 위해 이 기능은 여전히 존재하지만 내부적으로는 이제 다음의 암시적 강제로 처리됩니다.텍스트regclass함수가 호출되기 전.

순차 함수의 인수를 장식되지 않은 리터럴 문자열로 작성하면 이는 유형의 상수가 됩니다.regclass. 이는 실제로 OID일 뿐이므로 나중에 이름 변경, 스키마 재할당 등에도 불구하고 원래 식별된 스포츠 토토를 추적합니다."초기 바인딩"동작은 일반적으로 열 기본값 및 보기의 스포츠 토토 참조에 바람직합니다. 하지만 때로는 원할 수도 있습니다."늦은 바인딩"여기서 스포츠 토토 참조는 런타임 시 해결됩니다. 지연 바인딩 동작을 얻으려면 상수를 강제로텍스트대신 상수regclass:

nextval('foo'::text)foo런타임에 조회됩니다.

후기 바인딩은 에서 지원되는 유일한 동작임을 참고하십시오.PostgreSQL8.1 이전 릴리스이므로 이전 애플리케이션의 의미를 보존하려면 이 작업을 수행해야 할 수도 있습니다.

물론 스포츠 토토 함수의 인수는 표현식일 수도 있고 상수일 수도 있습니다. 텍스트 표현식인 경우 암시적 강제로 인해 런타임 조회가 발생합니다.

사용 가능한 스포츠 토토 기능은 다음과 같습니다:

다음발

스포츠 토토 개체를 다음 값으로 진행하고 해당 값을 반환합니다. 이는 원자적으로 수행됩니다. 여러 세션이 실행되더라도다음값동시에 각각은 고유한 스포츠 토토 값을 안전하게 수신합니다.

기본 매개변수를 사용하여 스포츠 토토 개체가 생성된 경우 연속다음값호출은 1부터 시작하는 연속 값을 반환합니다. 다른 동작은 다음의 특수 매개변수를 사용하여 얻을 수 있습니다.PostgreSQL : 문서 : 9.6 : 롤 토토 작성명령; 자세한 내용은 해당 명령 참조 페이지를 참조하세요.

중요:동일한 스포츠 토토에서 번호를 얻는 동시 트랜잭션을 차단하지 않으려면, a다음발작업은 롤백되지 않습니다. 즉, 값을 가져온 후에는 사용된 것으로 간주되어 다시 반환되지 않습니다. 주변 트랜잭션이 나중에 중단되거나 호출 쿼리가 값을 사용하지 않는 경우에도 마찬가지입니다. 예를 들어삽입그리고충돌 중절은 필요한 작업을 포함하여 삽입될 튜플을 계산합니다다음발다음을 따르게 하는 충돌을 감지하기 전에 호출충돌 중17811_17857"구멍"할당된 값의 순서대로. 따라서,PostgreSQL스포츠 토토 객체얻는 데 사용할 수 없습니다."틈이 없음"스포츠 토토.

곡선

가장 최근에 얻은 값을 반환합니다.다음값현재 세션의 이 스포츠 토토에 대해. (다음과 같은 경우 오류가 보고됩니다.다음값이 세션에서 이 스포츠 토토에 대해 호출된 적이 없습니다.) 이는 세션 로컬 값을 반환하기 때문에 다른 세션이 실행되었는지 여부에 관계없이 예측 가능한 답변을 제공합니다.다음값현재 세션이 그랬기 때문입니다.

마지막 값

가장 최근에 반환한 값을 반환합니다.다음값현재 세션에서. 이 기능은 다음과 동일합니다.곡선, 스포츠 토토 이름을 인수로 취하는 대신 어떤 스포츠 토토든 참조한다는 점을 제외하고다음값현재 세션에서 가장 최근에 적용되었습니다. 호출 오류입니다.마지막 값if다음값현재 세션에서는 아직 호출되지 않았습니다.

setval

스포츠 토토 개체의 카운터 값을 재설정합니다. 2개의 매개변수 형식은 스포츠 토토의마지막_값필드를 지정된 값으로 설정하고 해당 값을 설정합니다.is_called필드에서, 즉 다음다음값값을 반환하기 전에 스포츠 토토를 진행합니다. 보고된 값곡선도 지정된 값으로 설정됩니다. 3개의 매개변수 형식에서,is_called둘 중 하나로 설정할 수 있습니다.또는거짓. 사실은 2개의 매개변수 형식과 동일한 효과를 갖습니다. 으로 설정된 경우거짓, 다음다음값정확히 지정된 값을 반환하고 다음과 같이 스포츠 토토 발전이 시작됩니다.다음값. 또한, 다음에서 보고된 값은곡선20244_20288

SELECT setval('foo', 42);다음다음값43을 반환합니다SELECT setval('foo', 42, true);위와 동일SELECT setval('foo', 42, false);다음다음값42를 반환합니다

다음에 의해 반환된 결과setval은 단지 두 번째 인수의 값입니다.

중요:스포츠 토토는 비트랜잭션이기 때문에 다음에 의해 변경되었습니다.setval트랜잭션이 롤백되어도 취소되지 않습니다.