윈 토토 작성 - 새 윈 토토 생성기 정의
생성 [임시 | 온도] 윈 토토 [존재하지 않으면]이름
[asdata_type
] [증분 [by]증분
] [MinValueminvalue
| MinValue 없음] [MaxValuemaxValue
| maxValue 없음] [시작 [with]시작
] [캐시캐시
] [[아니오] 사이클] [ 소유table_name
.column_name
| 없음 ]
윈 토토 만들기
새로운 시퀀스 번호 생성기를 만듭니다. 여기에는 이름으로 새로운 특수 싱글 열 테이블을 작성하고 초기화하는 것이 포함됩니다이름
. 생성기는 명령을 발행하는 사용자가 소유합니다.
스키마 이름이 주어지면 지정된 스키마에서 시퀀스가 생성됩니다. 그렇지 않으면 현재 스키마에서 생성됩니다. 임시 시퀀스는 특수 스키마에 존재하므로 임시 시퀀스를 만들 때 스키마 이름을 제공 할 수 없습니다. 시퀀스 이름은 동일한 스키마에서 다른 시퀀스, 테이블, 인덱스, 뷰 또는 외국 테이블의 이름과 구별되어야합니다.
윈 토토가 만들어지면 함수를 사용합니다NextVal
, Currval
및setVal
윈 토토에서 작동합니다. 이러한 기능은에 문서화되어 있습니다.PostgreSQL : 문서 : 11 : 9.16. 스포츠 토토 사이트.
윈 토토를 직접 업데이트 할 수는 없지만 다음과 같은 쿼리를 사용할 수 있습니다.
선택 * From이름
;
윈 토토의 매개 변수와 현재 상태를 조사합니다. 특히last_value
윈 토토의 필드는 모든 세션에서 할당 된 마지막 값을 보여줍니다. (물론 다른 세션이 적극적으로 수행하는 경우이 값은 인쇄 될 때까지 쓸모 없을 수 있습니다.NextVal
전화.)
임시
또는temp
지정된 경우 시퀀스 객체는이 세션에 대해서만 생성되며 세션 종료시 자동으로 삭제됩니다. 동일한 이름을 가진 기존 영구 시퀀스는 표시되지 않습니다 (이 세션에서) 스키마 자격이없는 이름을 참조하지 않는 한 임시 시퀀스가 존재하지 않습니다.
존재하지 않으면
같은 이름과의 관계가 이미 존재하는 경우 오류를 던지지 마십시오. 이 경우 통지가 발행됩니다. 기존 관계가 생성 된 시퀀스와 같다는 보장은 없습니다. 시퀀스조차 없을 수도 있습니다.
이름
생성 될 시퀀스의 이름 (선택적으로 스키마 자격).
data_type
옵션 조항as
윈 토토의 데이터 유형을 지정합니다. 유효한 유형은data_type
smallint
, 정수
및bigint
. bigint
기본값입니다. 데이터 유형은 윈 토토의 기본 최소 및 최대 값을 결정합니다.
증분
선택 사항 조항증분
새 값을 생성하기 위해 현재 윈 토토 값에 추가되는 값을 지정합니다. 양수 값은 오름차순 윈 토토를 만들고, 음의 내림차순 윈 토토를 만듭니다. 기본값은 1입니다.증분
MinValue
minvalue 없음
선택 사항 조항minvalue
윈 토토가 생성 할 수있는 최소값을 결정합니다. 이 조항이 제공되지 않거나minvalue
MinValue 없음
지정되어 있으면 기본값이 사용됩니다. 오름차순 윈 토토의 기본값은 1입니다. 하강 윈 토토의 기본값은 데이터 유형의 최소값입니다.
maxValue
MaxValue 없음
선택 사항 조항MaxValue
윈 토토의 최대 값을 결정합니다. 이 조항이 제공되지 않거나MaxValue
MaxValue 없음
지정된 다음 기본값이 사용됩니다. 오름차순 윈 토토의 기본값은 데이터 유형의 최대 값입니다. 하강 윈 토토의 기본값은 -1입니다.
시작
선택 사항 조항시작
시퀀스가 어디서나 시작할 수 있습니다. 기본 시작 값은입니다.시작
minvalue
오름차순 윈 토토 및maxValue
내림차순
캐시
선택 사항 조항캐시
더 빠른 액세스를 위해 메모리에 얼마나 많은 시퀀스 숫자를 만들고 메모리에 저장 해야하는지 지정합니다. 최소값은 1입니다 (한 번에 하나의 값만 생성 할 수 있습니다. 즉 캐시 없음). 기본값이기도합니다.캐시
사이클
사이클 없음
the사이클
옵션은시 순서가 래핑 할 수 있습니다.MaxValue
또는MinValue
각각 상승 또는 하강 시퀀스에 의해 도달했습니다. 한계에 도달하면 생성 된 다음 숫자는입니다.minvalue
또는MaxValue
각각.
if사이클 없음
지정되어 있습니다.NextVal
윈 토토에 도달 한 후 최대 값에 도달하면 오류가 반환됩니다. 둘 다사이클
또는사이클 없음
지정되어 있습니다.사이클 없음
기본값입니다.
소유자
table_name
.column_name
소유 없음
the소유
옵션으로 인해 시퀀스가 특정 테이블 열과 연관되어 해당 열 (또는 전체 테이블)이 삭제되면 시퀀스도 자동으로 삭제됩니다. 지정된 테이블에는 동일한 소유자가 있어야하며 시퀀스와 동일한 스키마에 있어야합니다.없음
, 기본값은 그러한 연관성이 없음을 지정합니다.
use드롭 윈 토토
윈 토토를 제거하려면
윈 토토 기반bigint
산술, 따라서 범위는 8 바이트 정수의 범위를 초과 할 수 없습니다 (-9223372036854775808 ~ 9223372036854775807).
때문에NextVal
andsetVal
통화는 절대 롤백되지 않으며 윈 토토 객체를 사용할 수 없습니다.“Gapless”윈 토토 번호의 할당이 필요합니다. 카운터가 포함 된 테이블의 독점 잠금을 사용하여 갭리스 할당을 구축 할 수 있습니다. 그러나이 솔루션은 윈 토토 객체보다 훨씬 비싸다. 특히 많은 트랜잭션이 동시에 윈 토토 숫자를 필요로하는 경우.
a이면 예기치 않은 결과를 얻을 수 있습니다.캐시
하나보다 큰 설정은 여러 세션에서 동시에 사용될 시퀀스 객체에 사용됩니다. 각 세션은 시퀀스 객체에 대한 하나의 액세스 동안 연속 시퀀스 값을 할당하고 캐시하고 시퀀스 객체의를 증가시킵니다.last_value
그에 따라. 그런 다음 다음캐시
-1 사용NextVal
해당 세션 내에서 윈 토토 객체에 닿지 않고 Preallocated 값을 반환합니다. 따라서 세션 내에 할당되었지만 사용되지 않은 숫자는 해당 세션이 종료되면 손실되므로“홀”순서로.
또한 여러 세션이 별개의 윈 토토 값을 할당하도록 보장되지만 모든 세션이 고려 될 때 값이 윈 토토에서 생성 될 수 있습니다. 예를 들어,캐시
10의 설정, 세션 a 값 1..10 및 returnNextVal
= 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
이 순서를 an 사용하십시오.삽입
명령 :
유통 업체 값 (NextVal ( 'Serial'), 'Nothing')에 삽입;
a 이후 윈 토토 값을 업데이트합니다.복사
:
시작; 'input_file'에서 유통 업체를 복사합니다. 유통 업체에서 SetVal ( 'Serial', Max (ID))를 선택하십시오. 끝;
윈 토토 만들기
SQL표준, 다음 예외와 함께 :
다음 값을 얻는 것은를 사용하여 수행됩니다.nextVal ()
표준 대신 함수다음 값
표현.
the소유
절은 A입니다.PostgreSQL확장.