검색결과 리스트
글
시퀀스란
1) 오라클에서 자동으로 증가되는 숫자를 만들어주는 객체이다.
2) 유일(unique)한 값을 생성해 주는 오라클의 객체이다.
3) 시퀀스를 생성하면 기본키와 같이 순차적으로 증가하는 컬럼을 자동적으로 생성할 수 있다.
4) 보통 primary key 값으로 지정하여 사용한다(유일무이)
5) 일반적으로 sequence는 테이블과는 독립적으로 생성되어, 하나의 sequence를 여러 테이블에서 사용할 수 있다.
1. 생성방법
CREATE SEQUENCE [시퀀스명]
START WITH [시작 숫자] INCREMENT BY [증가되는 숫자]
MAXVALUE [N] | NOMAXVALUE
MINVALUE [N] | NOMINVALUE
CYCLE | NOCYCLE
1) start with : 시퀀스의 시작값을 지정한다. 값을 지정 하면 그 값을 시작으로 순차적으로 증가한다
2) increment by : 시퀀스를 얼마씩 증가 시킬 건지 정하는 부분이다. ex) 2라고 지정하면 2씩 증가한다.
3) maxvalue n | nomaxvalue
- maxvalue n : 시퀀스가 증가 할 수 있는 최대값을 말한다.
- nomaxvalue : 시퀀스의 값을 무한대로 지정한다.
4) minvalue n | nominvalue
- minvalue n : 시퀀스의 최소값을 지정한다. 기본값은 1이다.
- nominvalue를 지정할 경우 최소값은 무한대가 된다.
5) cycle : 최대값이 넘으면 다시 처음으로 돌아가 순환한다
2. 시퀀스 옵션
1) 현재 사용 되고 있는 모든 시퀀스의 이름을 조회 해 보자
SELECT* FROM USER_SEQUENCES
2) 하나의 시퀀스의 값을 반환하는 방법은 다음과 같다
CURRVAL : 현재 값을 반환 합니다.
NEXTVAL : 현재 시퀀스값의 다음 값을 반환 합니다.
ex) SELECT temp_seq.CURRVAL FROM DUAL
SELECT temp_seq.NEXTVAL FROM DUAL
3) 사용규칙
** NEXTVAL, CURRVAL을 사용할 수 있는 경우
- subquery가 아닌 select문
- insert문의 select절
- insert문의 value절
- update문의 set절
** NEXTVAL, CURRVAL을 사용할 수 없는 경우
- view의 select절
- distinct 키워드가 있는 select문
- group by, having, order by절이 있는 select문
- select, delete, update의 subquery
- create table, alter table 명령의 default값
INCREMENT BY [N]
MAXVALUE [N] | NOMAXVALUE
MINVALUE [N] | NOMINVALUE
CYCLE | NOCYCLE
[출처] [오라클] 시퀀스(sequence) 관련 모음 (프로그래머의 세계) |작성자 니베우스
RECENT COMMENT