*SQL_Oracle*

OBJECT < SEQUENCE >

깐부로부터 2021. 11. 12. 20:09

시퀀스 (SEQUENCE)

 

자동으로 번호를 발생시켜주는 역할을 하는 객체

정수값을 자동으로 순차적으로 생성해줌

 

예 ) 회원번호, 사번, 게시글 번호 등등... 채번 할 때 사용

 

 

1. 시퀀스 객체 생성 구문


    CREATE SEQUENCE 시퀀스명
    START WITH 시작숫자      => 생략가능, 처음 발생시킬 시작값 지정
    INCREMENT BY 증가값      => 생략가능, 몇씩 증가시킬건지 결정
    MAXVALUE                => 생략가능, 최대값 지정
    MINVALUE                => 생략가능, 최소값 지정
    CYCLE/NOCYCLE           => 생략가능, 값 순환 여부
    CACHE 바이트크기/NOCACHE  => 생략가능, 캐시메모리 쓸거야? 기본값은 20Byte

 

 

* SEQUENCE CACHE MEMORY : 미리 발생할 값들을 생성해서 저장해두는 공간
                                          매번 호출할 때 새로 번호를 생성하는건 비효율적이니
                                          캐시메모리 공간에 미리 생성된 값들을 가져다 쓰게해서
                                          속도를 높임
                                          접속이 끊기면 재접속후 기존에 생성되어있는 값들은 날라감  

 

 

 

 

2. 시퀀스 사용 구문

 

- 시퀀스명.CURRVAL : 현재 시퀀스의 값 (마지막으로 성공적으로 발생된 NEXTVAL 값)


- 시퀀스명.NEXTVAL : 시퀀스값을 증가시키고 증가된 시퀀스의 값
                            기존의 시퀀스 값에서 INVREMENT BY 값만큼 증가된 값
                            (시퀀스명.CURRVAL + INCREMENT BY 값)    

 

 

 

3. 시퀀스 변경(수정)

 

[ 표현법 ]

 

ALTER SEQUENCE 시퀀스명
INCREMENT BY 증가값
MAXVALUE 최대값
MINVALUE 최소값
CYCLE/NOCYCLE
CACHE 바이트크기 / NOCACHE
    
 * START WITH는 변경 불가 (초기화값 수정불가★)

 

 

 

 

 

 

4. 시퀀스 이용하여 DML 사용하기!

 

'*SQL_Oracle*' 카테고리의 다른 글

OBJECT < VIEW > 옵션  (0) 2021.11.12
OBJECT < VIEW >  (0) 2021.11.11
TCL < COMMIT, ROLLBACK >  (0) 2021.11.11
DCL < GRANT, REVOKE>  (0) 2021.11.11
DDL < ALTER, DROP >  (0) 2021.11.11