시퀀스 (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 |