윈 토토 : 문서 : 9.4 : 윈 토토 | |||
---|---|---|---|
PostgreSQL : 문서 : 9.4 : 스포츠 토토 사이트 생성 | PostgreSQL : 문서 : 9.4 : SQL 윈 토토 | PostgreSQL : 문서 : 9.4 : 사설 토토 사이트 생성 |
생성 [임시 | 온도] 젠 토토이름[증분 [by]증분] [MinValueminvalue| MinValue 없음] [MaxValuemaxValue| maxValue 없음] [시작 [with]시작] [캐시캐시] [[아니오] 사이클] [ 소유table_name.column_name| 없음 ]
젠 토토 만들기새로운 시퀀스 번호 생성기를 만듭니다. 여기에는 이름으로 새로운 특수 싱글 열 테이블을 작성하고 초기화하는 것이 포함됩니다이름. 생성기는 명령을 발행하는 사용자가 소유합니다.
스키마 이름이 주어지면 지정된 스키마에서 시퀀스가 생성됩니다. 그렇지 않으면 현재 스키마에서 생성됩니다. 임시 시퀀스는 특수 스키마에 존재하므로 임시 시퀀스를 만들 때 스키마 이름을 제공 할 수 없습니다. 시퀀스 이름은 동일한 스키마에서 다른 시퀀스, 테이블, 인덱스, 뷰 또는 외국 테이블의 이름과 구별되어야합니다.
젠 토토가 만들어지면 함수를 사용합니다NextVal
, Currval
및setVal
젠 토토에서 작동합니다. 이러한 기능은에 문서화되어 있습니다.PostgreSQL : 문서 : 9.4 : 토토 핫 조작 함수.
젠 토토를 직접 업데이트 할 수는 없지만 다음과 같은 쿼리를 사용할 수 있습니다.
선택 *에서이름;
젠 토토의 매개 변수 및 현재 상태를 검사합니다. 특히last_value젠 토토의 필드는 모든 세션에서 할당 된 마지막 값을 보여줍니다. (물론 다른 세션이 적극적으로 수행하는 경우이 값은 인쇄 될 때까지 쓸모 없을 수 있습니다.NextVal
전화.)
지정된 경우 시퀀스 객체는이 세션에 대해서만 생성되며 세션 종료시 자동으로 삭제됩니다. 동일한 이름을 가진 기존 영구 시퀀스는 표시되지 않습니다 (이 세션에서) 스키마 자격이없는 이름을 참조하지 않는 한 임시 시퀀스가 존재하지 않습니다.
생성 될 시퀀스의 이름 (선택적으로 스키마 자격).
선택 사항 조항증분증분새 값을 생성하기 위해 현재 순서 값에 추가되는 값을 지정합니다. 양수 값은 오름차순 젠 토토를 만들고, 음의 내림차순 젠 토토를 만듭니다. 기본값은 1입니다.
선택 사항 조항MinValueminvalue젠 토토가 생성 할 수있는 최소값을 결정합니다. 이 조항이 제공되지 않거나MinValue 없음지정된 다음 기본값이 사용됩니다. 기본값은 1과 -2입니다.63-1 각각 오름차순 및 내림차순 젠 토토의 경우.
선택 사항 조항maxValueMaxValue젠 토토의 최대 값을 결정합니다. 이 조항이 제공되지 않거나MaxValue 없음지정된 다음 기본값이 사용됩니다. 기본값은 2입니다.63-1 및 -1은 각각 오름차순 및 내림차순 젠 토토에 대해.
선택 사항 조항시작시작시퀀스가 어디서나 시작할 수 있습니다. 기본 시작 값은입니다.minValue오름차순 젠 토토 및maxValue내림차순
선택 사항 조항캐시캐시더 빠른 액세스를 위해 얼마나 많은 시퀀스 숫자를 사전에 배치하고 메모리에 저장 해야하는지 지정합니다. 최소값은 1입니다 (한 번에 하나의 값만 생성 할 수 있습니다. 즉 캐시 없음). 기본값도 있습니다.
the사이클옵션은시 순서가 래핑 할 수 있도록합니다.MaxValue또는minvalue각각 오름차순 또는 내림차순으로 도달했습니다. 한계에 도달하면 생성 된 다음 숫자는입니다.minvalue또는MaxValue각각.
if사이클 없음지정되어 있습니다.NextVal
젠 토토에 도달 한 후 최대 값에 도달하면 오류가 반환됩니다. 둘 다사이클또는사이클 없음지정되어 있습니다.사이클 없음기본값입니다.
the소유자옵션으로 인해 시퀀스가 특정 테이블 열과 연관되어 해당 열 (또는 전체 테이블)이 삭제되면 시퀀스도 자동으로 삭제됩니다. 지정된 테이블에는 동일한 소유자가 있어야하며 시퀀스와 동일한 스키마에 있어야합니다.소유 없음, 기본값은 그러한 연관성이 없음을 지정합니다.
use드롭 젠 토토젠 토토를 제거하려면
젠 토토 기반bigint산술, 따라서 범위는 8 바이트 정수의 범위를 초과 할 수 없습니다 (-9223372036854775808 ~ 9223372036854775807).
a이면 예기치 않은 결과를 얻을 수 있습니다.캐시하나보다 큰 설정은 여러 세션에서 동시에 사용될 시퀀스 객체에 사용됩니다. 각 세션은 시퀀스 객체에 대한 하나의 액세스 동안 연속 시퀀스 값을 할당하고 캐시하고 시퀀스 객체의를 증가시킵니다.last_value그에 따라. 그런 다음 다음캐시-1 사용NextVal
해당 세션 내에서 젠 토토 객체에 닿지 않고 Preallocated 값을 반환합니다. 따라서 세션 내에 할당되었지만 사용되지 않은 숫자는 해당 세션이 종료되면 손실되므로"구멍"순서로.
또한 여러 세션이 별개의 젠 토토 값을 할당하도록 보장되지만 모든 세션이 고려 될 때 값이 젠 토토에서 생성 될 수 있습니다. 예를 들어,캐시10의 설정, 세션 a 값 1..10 및 return.NextVal
= 1, 세션 B는 값 11..20 및 return을 예약 할 수 있습니다NextVal
= 11 세션 a가 생성되기 전NextVal= 2. 따라서캐시하나의 설정은를 가정하는 것이 안전합니다NextVal
값은 순차적으로 생성됩니다. A와 함께캐시하나보다 큰 설정NextVal
값은 모두 순전히 순차적으로 생성되는 것이 아니라 값이 모두 다릅니다. 또한,last_value아직 세션이 예약 한 최신 값을 반영합니다.NextVal
.
또 다른 고려 사항은 A입니다.setVal
그러한 시퀀스에서 실행 된 다른 세션에서 실행 된 다른 세션은 그들이 캐시 된 preallocated 값을 사용하기 전까지는 눈치 채지 못할 것입니다..
호출 된 오름차순 젠 토토 만들기Serial, 101에서 시작 :
시퀀스 생성 직렬 시작 101;
이 순서에서 다음 번호를 선택하십시오 :
SELECT NEXTVAL ( 'Serial'); 다음 발 ------- 101
이 순서에서 다음 번호를 선택하십시오 :
SELECT NEXTVAL ( 'Serial'); 다음 발 ------- 102
이 젠 토토 사용삽입명령 :
19899_19964
a 이후 젠 토토 값을 업데이트합니다.COPY FROM:
시작; 'input_file'에서 유통 업체를 복사합니다. 유통 업체에서 SetVal ( 'Serial', Max (ID))를 선택하십시오. 끝;