이 문서는 지원되지 않는 PostgreSQL 버전에 대한 것입니다.
다음에 대한 동일한 페이지를 보고 싶을 수도 있습니다.PostgreSQL : 문서 : 17 : 와이즈 토토 생성버전 또는 위에 나열된 다른 지원 버전 중 하나를 사용하세요.

토토 캔 생성

이름

CREATE SEQUENCE — 새 토토 캔 번호를 생성합니다. 발전기
토토 캔 생성시퀀스 이름[ 증분증분]
    [ 최소값최소값] [ MAXVALUE최대값]
    [ 시작시작] [ 캐시캐시] [ 주기 ]

입력

시퀀스 이름

생성될 시퀀스의 이름.

증분

증분증분절은 선택사항입니다. 양수 값은 오름차순 순서를 만듭니다. 음수는 내림차순입니다. 기본값은 다음과 같습니다. 하나(1).

최소값

선택적 조항MINVALUE최소값결정합니다 시퀀스가 생성할 수 있는 최소값입니다. 기본값은 다음과 같습니다. 오름차순 및 내림차순 시퀀스의 경우 1 및 -2147483647, 각각.

최대값

선택적 절 사용MAXVALUE최대값에 시퀀스의 최대값을 결정합니다. 기본값 오름차순 및 내림차순은 2147483647이고 -1입니다. 순서입니다.

시작

선택사항시작시작활성화 어디서든 시작할 수 있는 시퀀스입니다. 기본 시작 값은최소값오름차순 토토 캔 및최대값용 내림차순.

캐시

캐시캐시옵션이 시퀀스를 활성화합니다. 더 빠른 속도를 위해 숫자를 미리 할당하고 메모리에 저장합니다. 액세스. 최소값은 1입니다(하나의 값만 가능). 한 번에 생성됩니다(즉, 캐시 없음). 이는 또한 기본값.

사이클

선택적 CYCLE 키워드는 다음을 활성화하는 데 사용될 수 있습니다. 다음과 같은 경우 계속할 순서입니다.최대값또는최소값다음 사람이 도달했습니다. 각각 오름차순 또는 내림차순입니다. 한도인 경우 도달하면 생성되는 다음 숫자는 무엇이든 됩니다.최소값또는최대값적절합니다.

출력

만들기

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

오류: 관계 '시퀀스 이름' 이미 존재합니다

지정된 토토 캔가 이미 존재하는 경우.

오류: 정의순서: 최소값(시작)은 할 수 없습니다 = 최대값(최대)

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

오류: 정의순서: 시작 값(시작)은 <일 수 없습니다. 최소값()

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

오류: 정의순서: 최소값()은 =일 수 없습니다. 최대값(최대)

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

설명

토토 캔 생성새 항목을 입력합니다. 현재 데이터베이스에 시퀀스 번호 생성기를 추가합니다. 이 새로운 단일 행 테이블을 생성하고 초기화하는 작업이 포함됩니다. 이름시퀀스 이름. 발전기 명령을 실행하는 사용자가 "소유"합니다.

토토 캔가 생성된 후 기능을 사용할 수 있습니다.다음값(시퀀스 이름)에서 새 번호를 얻으려면 순서. 함수currval('시퀀스 이름')다음을 결정하는 데 사용될 수 있습니다. 마지막 호출에서 반환된 번호다음값(시퀀스 이름)현재 세션의 지정된 시퀀스에 대해. 함수setval('시퀀스 이름', 새값)다음을 설정하는 데 사용될 수 있습니다. 지정된 시퀀스의 현재 값입니다. 다음 호출은다음값(시퀀스 이름)주어진 값을 반환합니다 플러스 토토 캔 증가.

다음과 같은 쿼리를 사용하세요

SELECT * FROM시퀀스 이름;

토토 캔의 매개변수를 가져옵니다. 대안으로 위와 같이 원래 정의에서 매개변수를 가져오면 사용할 수 있습니다
다음에서 마지막_값 선택시퀀스 이름;

백엔드에서 할당된 마지막 값을 가져옵니다.

낮은 수준의 잠금은 여러 동시 활성화에 사용됩니다. 발전기를 호출합니다.

주의

캐시 설정이 다음과 같은 경우 예기치 않은 결과를 얻을 수 있습니다. 1보다 큰 값은 시퀀스 개체에 사용됩니다. 여러 백엔드에서 동시에 사용됩니다. 각 백엔드는 하나의 동안 연속적인 시퀀스 값을 할당하고 캐시합니다. 시퀀스 객체에 접근하고 시퀀스를 증가시킵니다. 그에 따라 객체의 last_value. 그러면 다음 캐시-1 해당 백엔드 내에서 nextval을 사용하면 단순히 공유 객체를 건드리지 않고 미리 할당된 값. 그래서, 할당되었지만 현재 세션에서 사용되지 않은 번호는 길을 잃다. 또한 여러 백엔드가 있지만 고유한 시퀀스 값 할당이 보장됩니다. 모든 백엔드가 다음과 같은 경우 순서 없이 생성될 수 있습니다. 고려. (예를 들어 캐시 설정이 10인 경우 백엔드 A는 값 1..10을 예약하고 nextval=1을 반환할 수 있습니다. 그러면 백엔드 B는 값 11..20을 예약하고 반환할 수 있습니다. 백엔드 A가 nextval=2를 생성하기 전에 nextval=11입니다.) 따라서 캐시 설정이 1이면 다음과 같이 가정하는 것이 안전합니다. nextval 값은 순차적으로 생성됩니다. 캐시와 함께 1보다 크게 설정하면 nextval 값은 모두 고유하지만, 순전히 순차적으로 생성됩니다. 또한 last_value는 백엔드에서 예약한 최신 값을 반영합니다. 또는 아직 nextval에 의해 반환되지 않았습니다.

참고

사용드롭 순서제거하려면 순서.

각 백엔드는 자체 캐시를 사용하여 할당된 숫자를 저장합니다. 캐시되었지만 현재 세션에서 사용되지 않는 번호 손실되어 시퀀스에 "구멍"이 발생합니다.

사용법

다음이라는 오름차순 시퀀스를 생성합니다.연재, 101부터 시작:

CREATE SEQUENCE 일련번호 시작 101;

이 순서에서 다음 숫자를 선택하세요

다음 선택('연속');

다음 값
-------
    114

INSERT에서 다음 순서를 사용하십시오:

배포자 VALUES에 삽입 (NEXTVAL('연속'),'없음');

COPY FROM 후 토토 캔 값 설정:

CREATE FUNCTION distributions_id_max() 반환 INT4
    AS '배포자로부터 최대(id) 선택' 
    언어 'sql';
시작;
    'input_file'에서 배포자를 복사하세요.
    SELECT setval('직렬', distributions_id_max());
끝;

호환성

SQL92

토토 캔 생성포스트그레언어 확장. 없습니다토토 캔 생성문의 내용SQL92.