SQL ORACLE
2024.12.27(금) 9일차 / 시퀀스
동준1234
2024. 12. 27. 16:12
SQL 을 하다보면 데이터들의 값이 누적되어 한 컬럼에 적립 되는 경우가 많다.
이때 시퀀스(SEQUENCE)를 사용하게 되면 보다 편하게 누적시킬 수 있다.
시퀀스란 자동으로 숫자를 발생시켜주는 역할을 하는 객체이다.
정수값을 순차적으로 일정하게 증가시키면서 생성해준다.
EX) 회원번호, 사원번호, 게시글번호 ...
기본 문법만 봐도 알 수 있듯이 여러가지 값들을 넣을 수 있다. 이 값들로 인해 편리하게 값들을 정리할 수 있다.
옵션 설명
- START WITH
- 시퀀스의 시작값을 설정함.
- 기본값은 1임.
- INCREMENT BY
- 증가 값을 설정함.
- 양수: 값이 증가, 음수: 값이 감소.
- 기본값은 1임.
- MAXVALUE / NOMAXVALUE
- 시퀀스의 최대값을 설정함.
- 기본값은 NOMAXVALUE(제한 없음)임.
- MINVALUE / NOMINVALUE
- 시퀀스의 최소값을 설정함.
- 기본값은 NOMINVALUE(제한 없음)임.
- CYCLE / NOCYCLE
- 최대값에 도달했을 때:
- CYCLE: 다시 최소값으로 돌아가 시퀀스를 반복.
- NOCYCLE: 오류 발생, 시퀀스 종료.
- 최대값에 도달했을 때:
- CACHE / NOCACHE
- 시퀀스 값을 미리 생성해두는 캐시 크기를 설정함.
- CACHE n: n개의 값을 미리 생성하여 성능 최적화(기본값: 20).
- NOCACHE: 캐시를 사용하지 않음.
- ORDER / NOORDER
- 여러 사용자가 동시에 시퀀스를 사용할 때:
- ORDER: 요청 순서대로 값을 생성.
- NOORDER: 순서를 보장하지 않음(기본값).
- 여러 사용자가 동시에 시퀀스를 사용할 때:
NEXTVAL, CURVAL 로 값을 조회하고 기본키와 일련번호 생성에 도움을 준다.
NEXTVAL 로 생성하고, CURRVAL 로 현재 값을 조회한다.
이때, CURRVAL 을 NEXTVAL 을 사용하기 전에 먼저 조회한다면, 에러가 나온다.
CURRVAL 은 마지막으로 성공한 NEXTVAL 의 값을 저장하여 보여주는 임시값 이기 때문이다.
따라서 꼭 NEXTVAL 을 먼저 조회하도록 하자.