본문 바로가기

Programming/SQL(Oracle)

DAY 64. [DataBase] 객체 SEQUENCE

 

SEQUENCE

오라클에서 제공하는 객체이다.

순차적으로 정수 값을 자동으로 생성하는 객체이다.

자동 번호 발생기 역할을 한다.

 

-- [표현식]

CREATE SEQUENCE 시퀀스명          
[START WITH 숫자]                 -- 처음 발생시킬 시작 값, 기본 값 1 
[INCREMENT BY 숫자]               -- 다음 값에 대항 증가치, 기본 값 1 
[MAXVALUE 숫자 | NOMAXVALUE]      -- 발생시킬 최대값, 10의 27승-1까지 가능 
[MINVALUE 숫자 | NOMINVALUE]      -- 발생시킬 최소값, -10의 26승
[CYCLE | NOCYCLE]                 -- 시퀀스가 최대값까지 증가 완료 시 CYCLE은 START WITH 설정 값으로 돌아간다. NOCYCLE은 에러 발생한다. / 값의 반복|순환 여부를 결정
[CACHE 바이트크기 | NOCACH];      -- CACHE는 메모리 상에서 시퀀스 값을 관리한다. 기본 값 20 / 캐시메모리에 미리 할당값을 정해놓느냐, 바이트 크기


-- [사용 구문]
            시퀀스명.CURRVAL : 현재 시퀀스의 값을 가져온다.
            시퀀스명.NEXTVAL : 시퀀스 값을 증가시키고 증가된 시퀀스 값을 가져온다.
                              (기존 시퀀스 값에서 INCREMENT 값 만큼 증가된 값)

 

SELECT * FROM USER_SEQUENCES;  라는 데이터 딕셔너리를 통해서 시퀀스 객체를 확인해 볼 수 있다.

 

 

✔️ NEXTVAL/CURRVAL 사용 가능 여부

 

SEQUENCE 수정

시퀀스를 수정할 때는 CREATE에 사용한 옵션도 변경이 가능하다.

단, START WITH 값은 변경이 불가능하기 때문에 변경하고 싶으면 삭제 후에 다시 생성해야 한다.

 

✔️ 표현식

ALTER SEQUENCE