이 문서는 지원되지 않는 버전의 PostgreSQL 용입니다.
당신은에 대해 같은 페이지를 볼 수 있습니다PostgreSQL : 문서 : 17 : 롤 토토 생성버전 또는 위에 나열된 다른 지원 버전 중 하나입니다.

생성 순서

이름

사설 토토 사이트 작성-새로운 것을 만듭니다 사설 토토 사이트 번호 생성기

시놉시스

사설 토토 사이트 만들기Seqname[증분증분]
    [MinValueminValue] [MaxValuemaxValue]
    [ 시작시작] [캐시캐시] [사이클]

입력

Seqname

생성 할 시퀀스의 이름.

증분

the증분증분절은 선택 사항입니다. 양수 값은 오름차순 사설 토토 사이트 만듭니다 음의 하강 시퀀스. 기본값은입니다 하나 (1).

MinValue

선택 사항 조항MinValueminvalue결정 사설 토토 사이트가 생성 할 수있는 최소값. 기본값 오름차순 및 내림차순은 1 및 -2147483647입니다 각각 사설 토토 사이트.

maxValue

선택 사항 조항maxValueMaxValue결정 사설 토토 사이트의 최대 값. 기본값은입니다 오름차순 및 내림차순 사설 토토 사이트의 경우 2147483647 및 -1, 각기.

시작

선택 사항시작시작활성화 어디서나 시작하는 시퀀스. 기본 시작 값은입니다.MinValue오름차순 사설 토토 사이트 및maxValue내림차순

캐시

the캐시캐시옵션 시퀀스를 활성화합니다 숫자는 Preallocated 및 메모리에 저장 될 것입니다 더 빠른 액세스. 최소값은 1입니다 (하나의 값만 할 수 있습니다 한 번에 생성됩니다. 즉, 캐시 없음) 이것은 또한 기본값.

사이클

선택적 사이클 키워드는 일시 래프 시퀀스maxValue또는minvalue각각 오름차순 또는 내림차순. 만약 한계에 도달하면 다음으로 생성 된 숫자는입니다.minvalue또는maxValue각각.

출력

생성

명령이 성공하면 메시지가 반환되었습니다.

오류 : 관계 'Seqname' 이미 존재합니다

지정된 사설 토토 사이트가 ​​이미 존재하는 경우.

오류 : Definesequence : MinValue (시작) 할 수 없습니다 = maxValue (max)

지정된 시작 값이 범위를 벗어난 경우.

오류 : DefineseQuence : 시작 값 (시작) < MinValue (Min)

지정된 시작 값이 범위를 벗어난 경우.

오류 : 정의 : MinValue (Min) 할 수 없습니다 = maxValue (max)

최소 및 최대 값이있는 경우 일관성 없는.

설명

사설 토토 사이트 만들기새로 들어갑니다 시퀀스 번호 생성기는 현재 데이터베이스로 내립니다. 이것 새 단일 줄 테이블을 작성하고 초기화하는 것이 포함됩니다 이름Seqname. 생성기 명령을 발행하는 사용자가 소유합니다.

사설 토토 사이트가 ​​만들어지면 함수를 사용할 수 있습니다NextVal ( 'Seqname')에서 새 번호를 얻으려면 순서. 함수Currval ( 'Seqname')를 결정하는 데 사용될 수 있습니다 마지막 전화로 반환 된 번호NextVal ( 'Seqname')지정된 사설 토토 사이트의 경우 현재 세션에서. 함수SetVal ( 'Seqname',NewValue)설정에 사용될 수 있습니다 지정된 시퀀스의 현재 값. 다음 전화NextVal ( 'Seqname')주어진 값을 반환합니다 또한 사설 토토 사이트 증가.

쿼리 사용

선택 *에서Seqname;
사설 토토 사이트의 매개 변수를 검사합니다. 대안으로 위와 같이 원래 정의에서 매개 변수를 가져 오면 사용할 수 있습니다
last_value from 선택Seqname;
백엔드가 할당 한 마지막 값을 얻으려면

얻는 동시 거래의 차단을 피하기 위해 동일한 사설 토토 사이트의 숫자, NextVal 작업은 결코 롤백; 즉, 일단 가치가 가져 오면 NextVal을 수행 한 트랜잭션이 있어도 사용 된 것으로 간주됩니다. 나중에 중단합니다. 이는 중단 된 거래가 떠날 수 있음을 의미합니다 할당 된 값의 순서에서 사용되지 않은 "구멍". 세트 발 작업도 롤백되지 않습니다.

주의

캐시 설정이면 예기치 않은 결과를 얻을 수 있습니다 하나 이상이 시퀀스 객체에 사용됩니다. 여러 백엔드에 의해 동시에 사용됩니다. 각 백엔드 연속 시퀀스 값을 할당하고 캐시합니다 시퀀스 객체에 대한 하나의 액세스 및 증가 그에 따라 객체의 객체의 last_value를 시퀀스합니다. 그런 다음 다음 해당 백엔드 내에서 NextVal의 Cache-1 사용은 단순히 반환됩니다 공유 된 부분을 만지지 않고 Preallocated 값 물체. 따라서 숫자는 할당되었지만 현재에는 사용되지 않습니다 세션이 손실됩니다. 또한, 다중 백엔드는 별개의 순서를 할당하도록 보장됩니다 값, 값은 시퀀스에서 생성 될 수 있습니다. 모든 뒷면이 고려됩니다. (예를 들어, a 캐시 설정 10, 백엔드 a 값 1..10 NextVal = 1을 반환하면 백엔드 B가 값을 예약 할 수 있습니다 11..20 및 백엔드 A가 있기 전에 NextVal = 11을 반환합니다 다음 val = 2.) 따라서 캐시 설정이 하나입니다 NextVal 값이 생성된다고 가정하는 것이 안전합니다. 순차적으로; 하나보다 큰 캐시 설정으로 NextVal 값이 전부라고 가정해야합니다 뚜렷하게, 그것들은 순전히 생성된다는 것이 아닙니다 순차적으로. 또한 Last_Value는 최신을 반영합니다 아직 백엔드에 의해 예약 된 가치, 아직 NextVal에 의해 반환되었습니다. 또 다른 고려 사항은 a 그러한 시퀀스에서 실행 된 setVal은 그들이 Preallocated를 고용 할 때까지 다른 뒷면 그들이 캐시 한 가치.

노트

use드롭 사설 토토 사이트a 순서.

각 백엔드는 자체 캐시를 사용하여 PrealLocated를 저장합니다 숫자. 캐시되었지만 현재에 사용되지 않은 숫자 세션이 손실되어 순서대로 "구멍"을 초래합니다.

usage

호출되는 오름차순 사설 토토 사이트 작성Serial, 101에서 시작 :

시퀀스 생성 직렬 시작 101;

이 순서에서 다음 번호를 선택하십시오 :

NextVal ( 'Serial')을 선택하십시오.

다음 발
-------
    114

삽입물 에서이 사설 토토 사이트 사용하십시오 :

유통 업체 값 (NextVal ( 'Serial'), 'Nothing')에 삽입;

사본 다음에 시퀀스 값을 설정합니다.

함수 생성 유통 업체 _id_max () int4를 반환합니다
    '유통 업체에서 MAX (ID) 선택' 
    언어 'SQL';
시작하다;
    'input_file'에서 유통 업체를 복사합니다.
    SELECT SETVAL ( 'serial', distributors_id_max ());
끝;

호환성

SQL92

사설 토토 사이트 만들기isPostgres언어 확장. 없음사설 토토 사이트 만들기진술SQL92.