ALTER SEQUENCE
ALTER SEQUENCE#
구문#
alter_sequence ::=#
sequence_options ::=#
sync_table_clause ::=#
restart_clause ::=#
전제 조건#
SYS 사용자, 시퀀스가 속한 스키마의 소유자 또는 ALTER ANY SEQUENCE 시스템 권한을 가진 사용자만이 이 구문으로 시퀀스를 변경할 수 있다.
설명#
CREATE SEQUENCE 구문으로 시퀀스 생성 후 시퀀스의 정의를 변경하는 구문이다. 더 자세한 설명은 CREATE SEQUENCE 문을 참고한다.
user_name#
변경될 시퀀스의 소유자 이름이다. 생략하면 Altibase는 현재 세션에 연결된 사용자의 스키마에 속한 것으로 간주한다.
seq_name#
변경될 시퀀스 이름이다.
INCREMENT BY#
시퀀스 값의 증감분을 명시하는데 사용된다.
MAXVALUE#
시퀀스의 최대값을 명시하는데 사용된다.
NOMAXVALUE#
시퀀스의 최대값을 지정하지 않을때 사용된다.
MINVALUE#
시퀀스의 최소값을 명시하는데 사용된다.
NOMINVALUE#
시퀀스의 최소값을 지정하지 않을때 사용된다.
CYCLE#
이는 시퀀스 값이 최대 또는 최소 한계 값에 도달한 후에도 그 시퀀스의 다음 값이 계속되는 것을 허용한다. 오름차순 시퀀스인 경우는 최대값에 도달한 후 최소값부터 다시 시작된다. 반면 내림차순 시퀀스인 경우는 최대값에 도달한 후 최대값부터 다시 시작된다.
NOCYCLE#
시퀀스의 순환을 허용하지 않을때 사용된다.
CACHE#
시퀀스 값을 더 빠르게 액세스 하기 위하여 명시된 개수 만큼의 시퀀스 값들이 메모리에 캐시된다. 캐시는 시퀀스가 처음 참조될 때 채워지며 다음에 시퀀스 값이 요청될 때마다 캐시 된 값이 검색된다. 캐시에서 마지막 시퀀스 값이 사용된 이후 다음 시퀀스 값 요청시 새로운 시퀀스 값들이 메모리 캐시된다.
NOCACHE#
시퀀스를 메모리에 캐시하지 않는 경우 사용된다.
FLUSH CACHE#
메모리에 캐시된 시퀀스 값들을 지워버린다. 이 옵션을 사용해서 캐시를 플러시한 후 시퀀스 값이 요청되면, 새로운 시퀀스 값들이 메모리에 캐시된다.
ENABLE SYNC TABLE#
시퀀스 번호를 복제하기 위한 시퀀스 이중화용 테이블을 생성한다. 시퀀스 이중화 전용 테이블의 이름은 [시퀀스 이름]$seq으로 자동 부여된다.
주의 사항 시퀀스 이름의 길이가 36바이트 이하여야, 시퀀스 이중화용 테이블을 생성할 수 있다.
DISABLE SYNC TABLE#
시퀀스를 이중화하기 위해 사용하던 시퀀스 이중화용 테이블을 삭제한다.
restart_clause#
시퀀스를 재시작하기 위한 구문으로 아래 세가지 방법이 있다.
RESTART#
START VALUE를 INCREMENT VALUE가 1 이상이면 MINVALUE로, INCREMENT VALUE가 -1 이하이면 MAXVALUE로 초기화하고, 시퀀스를 재시작한다.
RESTART WITH N#
START VALUE를 N으로 초기화하고, 시퀀스를 재시작한다.
RESTART START WITH N#
RESTART WITH N 와 동일하게, START VALUE를 N으로 초기화하고 시퀀스를 재시작한다.
예제#
<질의> 시퀀스 seq1을 최소값이 0, 최대값이 100이고 1씩 증가하도록 변경하라.
iSQL> ALTER SEQUENCE seq1
INCREMENT BY 1
MINVALUE 0
MAXVALUE 100;
Alter success.
<질의> 시퀀스 seq2의 최소값, 최대값을 무한대로 변경하라.
iSQL> ALTER SEQUENCE seq2
NOMAXVALUE
NOMINVALUE;
Alter success.
<질의> 시퀀스 seq1의 캐시된 시퀀스 값을 메모리에서 지운다.
iSQL> ALTER SEQUENCE seq1 FLUSH CACHE;
Alter success.
<질의> 시퀀스 seq1의 이중화를 위한 시퀀스 이중화용 테이블을 생성하라.
iSQL> ALTER SEQUENCE seq1 ENABLE SYNC TABLE;