SEQUENCE 개념
- 순차적 번호 자동 발생 역할을 하는 객체
- 주로 PK역할의 컬럼에 삽입되는 값을 만드는 용도(UNIQUE&NOT NULL)
- SEQUENCE 객체를 생성하여 호출하면 지정된 범위 내에서 일정한 간격으로 증가하는 숫자를 순차적으로 출력할 수 있어서 주민등록번호와 같은 인위적 주식별자역할이 필요할 때 사용
SEQUENCE 생성(CREATE)
[STRAT WITH 숫자] : 처음 발생시킬 시작값 지정, 생략하면 자동 1
[INCREMENT BY 숫자] : 다음 값에 대한 증가치, 생략하면 자동 1
[MAXVALUE 숫자 | NOMAXVALUE] : 발생시킬 최대값 지정 (10의 27승 -1) → MIN & MAX를 통한 범위 설정
[MINVALUE 숫자 | NOMINVALUE] : 최소값 지정 (-10의 26승)
[CYCLE | NOCYCLE] : 값 순환 여부 지정, 기본값 NOCYCLE
[CACHE 바이트크기 | NOCACHE] : 캐쉬메모리 기본값 20BYTE (최소값은 2BYTE)
* 캐시 메모리란
할당된 크기만큼 미리 값들을 생성해 저장해두고, 시퀀스 호출 시 미리 저장된 값들을 가져와 반환하는 것
→ 매번 시퀀스를 생성해서 반환하는 것보다 DB속도가 향상
SEQUENCE 수정(ALTER)
SEQUENCE 생성과 같은 옵션들을 사용하되,
START WITH 값은 제외하고 ALTER SEQUENCE 명령어로 수정 할 수 있다.
SEQUENCE 사용 방법
1) 시퀀스명.NEXTVAL : 다음 시퀀스 번호 출력 (INCREMENT BY만큼 증가된 값)
2) 시퀀스명.CURRVAL : 현재 시퀀스 번호 출력
단, 시퀀스 생성 후 NEXTVAL 선 호출 없이 CURRVAL를 호출하면 오류가 발생한다.
( CURRVAL는 마지막 NEXTVAL 호출 값을 다시 보여주는 기능)
'Database' 카테고리의 다른 글
DB 모델링 (0) | 2022.11.16 |
---|---|
DB 구현 & SQL활용 (0) | 2022.09.20 |
[SQL] VIEW (1) | 2022.09.17 |
[SQL] DML - SELECT구문 (0) | 2022.09.04 |
[SQL] SQL(Structured Query Language) (0) | 2022.09.03 |