콘텐츠로 이동

ALTER SEQUENCE

ALTER SEQUENCE#

구문#

alter_sequence ::=#

sequence_options ::=#

sync_table_clause ::=#

sync_table_clause

restart_clause ::=#

sync_table_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;