토토 캔 생성시퀀스 이름[ 증분증분]
[ 최소값최소값] [ 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.