티스토리 뷰


Sequence 란?

  • Oracle 내부에서 순차적으로 증가되는 값을 가지는 유일(Unique) 객체임.
  • 시퀀스를 생성하게 되면 이것을 이용하여 순차적으로 증가되는 관리번호같은 것등을 자동생성함.
  • 메모리에 cache되었을때에 Sequence 값의 액세스 효율이 증가함.
  • 테이블과 독립적으로 생성되므로 여러테이블에서 사용될수 있음.

---------------------------------------------------------------------------
SEQUENCE 생성 구문:
---------------------------------------------------------------------------

CREATE SEQUENCE [시퀀스이름]
START WITH
[n]
INCREMENT BY [n]
MAXVALUE    [n] |     NOMAXVALUE
MINVALUE     [n] |     NOMINVALUE
CYCLE                 |      NOCYCLE


  • START WITH [n] - n으로 시퀀스 시작값을 설정한다.
  • INCREMENT BY [n] - n 만큼 시퀀스가 증가한다.
  • MAXVALUE, MINVALUE - 지정된 숫자만큼 최대값 최소값이 정해진다.
---------------------------------------------------------------------------

테이블을 운영하다보면 어떠한 필드가 1씩 증가해야 하는 상황이 필요하다. 이러한 경우 사용하는 방식으로 sequence 를 만들어서 사용하는 방식이 있다.

다음은 1 부터 시작하여 한번에 1씩 증가하는 sequence 를 생성한다.

create sequence autonum
     increment by 1   -- 1씩 증가하라는거고요
     start with 1        -- 1부터 시작이고요 100 시작할려면 100 이라고 쓰시면 됩니다.
     nomaxvalue       -- 최대값 제한이 없다
     nocycle            
     nocache;

 간단하게 1부터 1씩 증가를 원하면 다음과 같이 사용해도 된다.

create sequence friend_seq;

--> 기본적으로 1부터 시작하여 1씩 증가하게 된다.

 접근:

-- 시퀀스명.nextval

-- 시퀀스명.curval

 

insert into friend values(friend_seq.nextval,'박신양','노래');
insert into friend values(friend_seq.nextval,'장동건','수영');

 

유의할 사항은
- 시퀀스명.Nextval 하면 전에 값으로 되돌릴수 없습니다.
                       └> 해결책: 삭제하고 다시 만들어줘야 함!

 

SEQUENCE 삭제(필요시)
drop sequence
member_seq;
drop sequence friend_seq;



참조 : http://opensourceforge.tistory.com/264
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2025/04   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30
글 보관함