이 문서는 지원되지 않는 버전의 PostgreSQL을위한 것입니다.
당신은에 대해 같은 페이지를 보려고 할 수 있습니다현재버전 또는 위에 나열된 다른 지원되는 버전 중 하나입니다.

배트맨 토토 만들기

이름

배트맨 토토 작성 - 새로운 배트맨 토토 번호를 만듭니다 발전기
배트맨 토토 만들기seqname[증분증분]
    [MinValueMinValue]
    [maxValuemaxValue]
    [ 시작시작]
    [캐시캐시]
    [사이클]

입력

Seqname

생성 할 시퀀스의 이름.

증분

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

minvalue

선택 사항 조항MinValueMinValue결정 배트맨 토토가 생성 할 수있는 최소값. 기본값은입니다 오름차순 및 내림차순 배트맨 토토의 경우 1 및 -2147483647, 각기.

maxValue

선택 사항 조항 사용maxValuemaxValueTO 배트맨 토토의 최대 값을 결정하십시오. 기본값 오름차순 및 내림차순은 2147483647이고 -1입니다 각각 배트맨 토토.

시작

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

캐시

the캐시캐시옵션 시퀀스를 활성화합니다 더 빨리 메모리에 Preallocated 및 저장 될 숫자 입장. 최소값은 1입니다 (하나의 값 만 한 번에 생성, 즉 캐시 없음) 기본.

사이클

선택적 사이클 키워드는 계속 될 순서maxValue또는minvalue각각 오름차순 또는 내림차순. 한도 인 경우 도달하면 다음에 생성 된 숫자는 무엇이든minvalue또는maxValue적절합니다.

출력

Create

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

오류 : Amcreate : 'seqname' 이미 관계 존재

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

오류 : 정의 : 시작 값 (시작)는 MaxValue (maxValue)

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

오류 : 정의 : 시작 값 (시작) < MinValue (MinValue)

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

오류 : Definesequence : MinValue (minvalue)는 = MaxValue (maxValue)

최소 및 최대 값이 일치하지 않는 경우.

설명

생성 시퀀스가 ​​새로운 시퀀스 번호 생성기로 들어갑니다 현재 데이터베이스로. 여기에는 생성 및 포함됩니다 이름으로 새 단일 줄 테이블을 초기화seqname. 발전기는 "소유"됩니다 명령을 발행하는 사용자.

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

쿼리 사용

SELECT * From Sequence_name;
배트맨 토토의 매개 변수를 얻습니다. 가져 오는 것 외에도 원래 매개 변수, 사용할 수 있습니다
sequence_name에서 last_value를 선택하십시오.
백엔드에 의해 할당 된 마지막 값을 얻으려면. 매개 변수, 사용할 수 있습니다

저수준 잠금은 다중 동시를 가능하게하는 데 사용됩니다 발전기에 대한 호출.

주의

캐시 설정이면 예기치 않은 결과를 얻을 수 있습니다 하나 이상의 시퀀스 객체에 사용됩니다. 여러 백엔드에 의해 동시에 사용됩니다. 각 백엔드는 할 것입니다 하나 동안 "캐시"연속 시퀀스 값을 할당하십시오 시퀀스 객체에 대한 액세스 및 시퀀스를 증가시킵니다 그에 따라 Object의 Last_Value. 그런 다음 다음 캐시 -1입니다 해당 백엔드 내에서 NextVal의 사용은 단순히 반환합니다 공유 객체에 닿지 ​​않고 Preallocated 값. 그래서, 할당 된 숫자는 현재 세션에서 사용되지 않는 것입니다. 길을 잃습니다. 또한 여러 백엔드는 있지만 뚜렷한 시퀀스 값, 값을 할당하도록 보장됩니다 모든 백엔드가있을 때 시퀀스에서 생성 될 수 있습니다. 존경받는. (예를 들어, 캐시 설정이 10, 백엔드 a 값 1..10을 예약하고 NextVal = 1을 반환합니다. 그런 다음 백엔드 B는 값 11..20을 예약하고 반환 할 수 있습니다 Backend A 전 NextVal = 11이 NextVal = 2를 생성했습니다.) 따라서, 따라서, 캐시 설정을 사용하면 NextVal 값은 순차적으로 생성됩니다. 캐시로 하나보다 큰 설정은 NextVal 값은 모두 뚜렷하지만 그렇지 않습니다 순전히 순차적으로 생성됩니다. 또한 Last_value가 있습니다 모든 백엔드에 의해 예약 된 최신 가치를 반영하십시오 또는 NextVal에 의해 아직 반환되지 않았습니다.

노트

낙하 배트맨 토토 문을 참조하여 a를 제거하십시오 순서.

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

usage

호출 된 오름차순 배트맨 토토 만들기Serial, 101에서 시작 :

시퀀스 생성 직렬 시작 101;

이 시퀀스에서 다음 번호를 선택하십시오

SELECT NEXTVAL ( 'Serial');

다음 발
-------
    114

삽입물 에서이 배트맨 토토를 사용하십시오 :

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

사본 후 배트맨 토토 값을 설정합니다.

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

호환성

배트맨 토토 만들기isPostgres언어 확장.

SQL92

없음배트맨 토토 만들기진술 안에SQL92.