데이터베이스

[oracle] 시퀀스(SEQUENCE) : 테이블 내의 유일한 숫자 자동

지승준 2013. 9. 11. 18:10

시퀀스란?

- 테이블 내의 유일한 숫자를 자동으로 생성시켜 주는 역할을 합니다.

- 오라클에서 무결성을 위해 유일한 값을 가져야 할 경우, 사용자의 부담을 덜어낼 수 있습니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
CREATE SEQUENCE sequence_name
    [START WITH n]
    [INCREMENT BY n]
    [{MAXVALUE n | NOMAXVALUE}]
    [{MINVALUE n | NOMINVALUE}]
    [{CYCLE | NOCYCLE}]
    [{CACHE n | NOCACHE}]
 
//START WITH n : 시퀀스 번호의 시작을 지정합니다.
//INCREMENT BY n : 연속적인 시퀀스 번호의 증가치를 지정할 때 사용됩니다.
//MAXVALUE n : 시퀀스의 최대값을 지정합니다.
//MINVALUE n : 시퀀스의 최소값을 지정합니다.
//CYCLE : 시퀀스 값이 최대값까지 증가되고 나면 START WITH에서 지정한 시작값으로 시퀀스를 다시 시작합니다.
//CACHE n : 메모리상에서 시퀀스 값을 관리하도록 하는 것으로 기본값은 20입니다.
cs


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
//시퀀스 생성
CREATE SEQUENCE SEQ_TEST INCREMENT BY 1 START WITH 1;
 
//시퀀스 수정
ALTER SEQUENCE SEQ_TEST INCREMENT BY 2;      
//START WITH는 수정 불가
 
//시퀀스 삭제
DROP SEQUENCE SEQ_TEST;
 
//INSERT에서 시퀀스 호출하기
INSERT INTO TEST(NUM, NAME, REG_DATE) VALUES (num_seq.NEXTVAL, 'JOHN', SYSDATE); 
//num_seq : 시퀀스명
//currval : 현재 시퀀스 값을 반환
//nextval : 현재 시퀀스값의 다음 값을 반환
 
//시퀀스 정보 보기
SELECT * FROM USER_SEQUENCES;
cs