Oracle 시퀸스(sequence) 생성
사용하는 이유는 간단히 아래와 같다고 할 수 있겠다.
- 자동으로 고유한 숫자값을 생성해주며 기본 키 값을 생성하기위해 사용(ex 게시판 글번호)
- 자동으로 Unique number 를 생성, 공유 가능한 object, 일반적으로 primary key 값을 생성을 위해 사용
사용 예)
CREATE SEQUENCE / 시퀸스 NAME /
INCREMENT BY 1 / 값은 1씩 증가한다 /
START WITH 10 / 초기 시작 값은 10 이다. 즉 10,11,12... 증가된다 /
MAXVALUE 10000 / 마지막 최대 값은 10000 이다 /
NOCACHE / 시스템에 미리 수를 계산해서 만들어 놓을것인지 나중에 계산해서 넣을것인지 /
NOCYCLE / 최대값까지 증가 되었다면 다시 초기값으로 시작된다 만약 10000 까지 갔다면 다시 초기 값부터 시작한다 /
1. Oracle 시퀸스(sequence) 확인
--- 최초 조회시 ---
SELECT 시퀸스이름.NEXTVAL FROM DUAL ;
화면출력 >>
NEXTVAL
10
출력설명) 초기 시작값을 10으로 설정했기에 10이 나온다. 당연한 말인가..^^;;;
select 시퀸스이름.nextval from daul; 이라 다시 명령하면, 그 조회값은 11이 된다.
다시 말하면, 조회한번에 증가폭만큼 증가 된다.
예제)
INSERT INTO ORDER(ORDER_ID, ORDER_NAME, PHONE)
VALUES (order_seq.NEXTVAL,'가나다','010-0000-1111');
2. Oracle 시퀸스(sequence) 변경
- ALTER SEQYENCE 시퀸스 이름 뒤에 바꿀 내용들.
ALTER SEQUENCE emp_id_seq INCREMENT BY 3 NOCHCHE NOCYCLE;
- 시퀸스 변경시 START WITH 옵션은 변경 할수 없다. 변경하려면 삭제 후 생성.
3. Oracle 시퀸스(sequence) 삭제
drop sequence 시퀸스이름;
[출처] Oracle sequence(오라클 시퀸스) 생성|작성자 하동하동