본문 바로가기

춤추는 프로그래머/Database.

[오라클] Sequence

1. 시퀀스(Sequence)

   

정의 : 시퀀스는 기본 키 값을 자동으로 생성하기 위하여 일련번호를 생성하기 위한 객체이다.

예를 들어 웹게시판에 글이 등록되는 순서대로 번호를 하나씩 할당하는 등의 작업에 사용하면 아주 유용하다.

시퀀스 값은 오라클 내부 루틴에 의해 자동으로 번호가 생성된다.

   

2. 시퀀스 생성

   

문법)

CREATE SEQUENCE sequence

[INCREMENT BY n] <== 시퀀스 번호의 증가 값으로 기본값은 1

[START WITH n] <== 시퀀스 시작번호로 기본값은 1

[MAXVALUE n | NOMAXVALUE] <== 생성 가능한 시퀀스 최대값

[MINVALUE n | NOMINVALUE] <== CYCLE일 경우 새로 시작되는 값

[CYCLE | NOCYCLE] <== 시퀀스 번호를 순환 사용할 것인지 지정

[CACHE n | NOCACHE] <== 시퀀스 생성속도를 개선하기 위해 캐싱여부 지정

   

SQL> CREATE SEQUENCE s_seq

INCREMENT BY 1

START WITH 1

MAXVALUE 100;

   

3. CURRVAR과 NEXTVAL 함수

 

CURRVAR : 시퀀스에서 생성된 현재 번호를 확인하는 함수

NEXTVAL : 시퀀스에서 다음 번호를 생성하는 함수

   

SQL> INSERT INTO student(studno, name, deptno)

VALUES (s_seq.NEXTVAL, '홍길동',101);

   

4. 시퀀스 삭제

   

SQL> DROP SEQUENCE s_seq;