오라클 객체 중 시퀀스를 알아보겠습니다. 시퀀스는 순서대로 번호를 만들어줍니다. 예를 들어 게시판 번호를 순차적으로 할당해준다고 합시다. 그렇다면 새로운 게시글을 만들 때 마다 게시판 번호는 시퀀스 객체를 통해서 순서대로 번호를 만들어 줍니다.
시퀀스 생성
CREATE SEQUENCE 시퀀스명 INCREMENT BY 증가 될 숫자 START WITH 시작 숫자 NOMINVALUE | MINVALUE 최솟값 -- NOMINVALUE 디폴트 값은 1, 최솟값 무한대로 설정
NOMAXVALUE | MAXVALUE 최대값 -- NOMAXVALUE 디폴트 값은 1028-1, 최댓값 무한대로 설정
NOCYCLE | CYCLE -- CYCLE: 최댓값 또는 최솟값의 도달 시 최솟값 또는 최댓값 부터 시작
NOCACHE | CACHE -- CACHE: 메모리에 시퀀스 값의 할당 여부
;
시퀀스 생성 예제
CREATE SEQUENCE BOARD_SEQ INCREMENT BY 1 START WITH 1 MINVALUE 1
MAXVALUE 99999
NOCYCLE
NOCACHE
;
BOARD_SEQ라는 시퀀스를 생성 하였다. 증가 값은 1, 시작은 1 최댓값은 99999 까지 시퀀스 생성이 가능하다. NOCYCLE, NOCACHE조건을 통해서 최댓값 도달 시 반복되는 것도 없으며 시퀀스 값을 메모리에 할당 해놓지 않는다.
시퀀스를 생성하고 나서 시퀀스 사용방법은 다음과 같다.
시퀀스 번호 추출 및 확인
BOARD_SEQ.NEXTVAL -- 시퀀스 번호 추출
BOARD_SEQ.CURRVAL -- 현재 시퀀스 번호 확인
시퀀스에 NEXTVAL을 호출 하면 다음 시퀀스 번호를 리턴하며 CURRVAL을 사용하면 현재 어디까지 시퀀스를 할당 했는지 알 수 있다.
시퀀스 삭제
DROP BOARD_SEQ
시퀀스 삭제는 DROP문을 사용한다.
이렇게 시퀀스를 사용하면 순차로 할당 되는 번호를 손쉽게 사용할 수 있다.
'DB > Oracle' 카테고리의 다른 글
[DB] 오라클 NULL 조인(조인 시 주의사항) (0) | 2019.03.28 |
---|---|
[DB] 오라클 실행계획 보는 법(autotrace 사용) (0) | 2019.03.25 |
[DB] 오라클 시노님(synonym)이란? (시노님 생성, 시노님 삭제) (0) | 2019.03.14 |
[DB] 오라클 에러, ORA-01427: 단일 행 하위 질의에 2개 이상의 행이 리턴되었습니다. (0) | 2019.03.13 |
[DB] 오라클 파티션 테이블 정의 및 생성 (0) | 2019.03.13 |