상세 컨텐츠

본문 제목

오라클 시퀀스(Oracle Sequence) 사용

Work/Study

by 물빛미르 2015. 2. 2. 15:30

본문

728x90

1. sequence 생성

1-1. Syntax

create_sequence::=

CREATE SEQUENCE [ schema. ] sequence

   [ { INCREMENT BY | START WITH } integer

   | { MAXVALUE integer | NOMAXVALUE }

   | { MINVALUE integer | NOMINVALUE }

   | { CYCLE | NOCYCLE }

   | { CACHE integer | NOCACHE }

   | { ORDER | NOORDER }

   ]... ;


1-2. sequence 생성하는 예제입니다.

 다음과 같이 DDL을 사용하면

 CREATE SEQUENCE test_seq1;

 


 Oracle DBMS가 다음과 같이 변경하여 생성합니다.

 CREATE SEQUENCE test_seq1

   START WITH 1    -- 시작값

   MAXVALUE 9999999999999999999999999999 -- 최대값 지정 또는 NOMAXVALUE를 사용하여 무한으로 셋팅

   MINVALUE 1    -- 최소값 지정 또는 NOMINVALUE를 사용하여 무한으로 셋팅

   NOCYCLE    -- 최대 또는 최소값에 도달 한 후 추가로 값을 생성 할 수 있음 순환을 하게 하려면 CYCLE 사용

   CACHE 20    -- 2~28의 값을 가지며 공식은 (CEIL (MAXVALUE - MINVALUE)) / ABS (INCREMENT)

   NOORDER;

 


2. sequence 수정

2-1. Syntax

alter_sequence::=

ALTER SEQUENCE [ schema. ] sequence

  { INCREMENT BY integer

  | { MAXVALUE integer | NOMAXVALUE }

  | { MINVALUE integer | NOMINVALUE }

  | { CYCLE | NOCYCLE }

  | { CACHE integer | NOCACHE }

  | { ORDER | NOORDER }

  } ...

  ;


2-2 sequence 수정 예제

 최대 값을 1500으로 변경

 ALTER SEQUENCE test_seq1

    MAXVALUE 1500;


 sequence 번호가 순환 되게 하고(최대값이 되면 시작값으로 되돌아감) cache를 5로 변경

 ALTER SEQUENCE test_seq1

    CYCLE

    CACHE 5;


3. sequence 삭제

3-1. Syntax

drop_sequence::=

DROP SEQUENCE [ schema. ] sequence_name ;


3-2. sequence 삭제 예제

DROP SEQUENCE test_seq1;

[출처] 오라클 시퀀스(Oracle Sequence) 사용|작성자 강철고양이

728x90

관련글 더보기