SEQUENCE

MINIMI·2023년 1월 17일
0

ORACLE

목록 보기
10/11
post-thumbnail

1) 정의

  • 자동 번호 발생기 역할을 하는 객체
  • 순차적으로 정수 값을 자동 생성해준다

2) 옵션

  • CREATE SEQUENCE 시퀀스명
  • [INCREMENT BY 숫자] -- 다음 값에 대한 증가치, 생략하면 자동 1이 기본
  • [START WITH 숫자] -- 처음 발생시킬 값 지정, 생략하면 자동 1이 기본
  • [MAXVALUE 숫자 | NOMAXVALUE] -- 발생시킬 최대 값 지정(10의 27승)
  • [MINVALUE 숫자 | NOMINVALUE] -- 발생시킬 최소 값 지정(-10의 26승)
  • [CYCLE | NOCYCLE] -- 값 순환 여부
  • [CACHE 바이트크기 | NOCACHE] -- 캐쉬 메모리 기본 값은 20바이트, 최소는 2바이트
CREATE SEQUENCE SEQ_EMPID
START WITH 300
INCREMENT BY 5
MAXVALUE 310
NOCYCLE
NOCACHE;

3) 시퀀스명.

  • 시퀀스명.CURRVAL : 해당 시퀀스가 가지고 있는 CURRENT VALUE(현재값) 리턴
  • 시퀀스명.NEXTVAL : 해당 시퀀스가 가질 NEXT VALUE(다음값) 리턴
  • NEXT VALUE 요청 없이 CURRENT VALUE를 요청하면 정의되어 있지 않다는 오류 발생

4) 주의 사항

  • START WITH 값은 변경 불가능이므로 해당 값을 변경하려면 DROP으로 삭제 후 다시 생성

5) 많이 사용하는 방법

  • 인위적 주식별자로 SEQUENCE 객체를 이용한 넘버링(NOT NULL, UNIQUE)
CREATE SEQUENCE SEQ_EID
START WITH 300
INCREMENT BY 1
MAXVALUE 10000
NOCYCLE
NOCACHE;

INSERT
  INTO EMPLOYEE
VALUES
(
  SEQ_EID.NEXTVAL, '홍길동', '660101-1111111', 'hong_gd@greedy.com', '01012345678'
                  , 'D2', 'J7', 'S1', 5000000, 0.1, 200, SYSDATE, NULL, DEFAULT
);
profile
DREAM STARTER

0개의 댓글