시퀀스는 유일한 값을 생성해주는 오라클 객체로 보통 primary key로 사용할 수 있는
순차적으로 증가하는 숫자 컬럼을 생성할 때 사용한다.
CREATE SEQUENCE 시퀀스이름
[INCREMENT BY 숫자]
[START WITH 숫자]
[MAXVALUE 숫자 or NOMAXVALUE]
[MINVALUE 숫자 or NOMINVALUE]
[CYCLE or NOCYCLE]
[CACHE or NOCACHE];
increment by : 시퀀스의 증가 값, 생략시 1씩 증가
start with : 시퀀스의 시작 값, 1로 지정하면 1부터 순차적으로 증가, 생략시 1
MAXVALUE 숫자 or NOMAXVALUE : MAXVALUE는 시퀀스가 증가할 수 있는 최대값,
NOMAXVALUE는 오름차순 최대 10의 27승 까지, 내림차순 -1 까지 생성
MINVALUE 숫자 or NOMINVALUE : MINVALUE는 시퀀스의 최소값을 지정, 기본값은 1,
NOMINVALUE는 오름차순 1 까지, 내림차순 -10의 26승 까지
CYCLE or NOCYCLE : CYCLE은 시퀀스가 최대값 도달 후 다시 처음부터 시퀀스 생성
NOCYCLE은 최대값에 도달해도 다시 시퀀스를 생성하지 않음
CACHE or NOCACHE : CACHE는 시퀀스 값을 메모리에 할당, 기본값은 20
NOCACHE는 시퀀스를 메모리에 할당하여 사용하지 않음.
<시퀀스 생성 예(기본값으로 생성할 경우)>
CREATE SEQUENCE 시퀀스이름;
<생성된 시퀀스 정보 보기>
select * from user_sequeneces;
<insert 문에서 시퀀스 호출하기>
SQL>insert into test(num, name, reg_date) values (num_seq.NEXTVAL, 'john', sysdate);
num_seq : 시퀀스명
currval : 현재 시퀀스 값을 반환
nextval : 현재 시퀀스값의 다음 값을 반환
<시퀀스 수정>
start with 는 수정할 수 없음, start with를 제외하고 시퀀스 생성시 사용하는 옵션 모두 사용가능
SQL>alter sequence 시퀀스명
increment by 2;
<시퀀스 삭제>
SQL>drop sequence 시퀀스명;
'oracle' 카테고리의 다른 글
sqlldr 을 이용한 다량의 데이터 import (0) | 2016.07.13 |
---|---|
오라클 ROWNUM을 이용한 페이징 처리 (0) | 2016.07.13 |
오라클 계정 생성 및 삭제 (0) | 2016.07.12 |
오라클 계정 비밀번호 변경하기 (0) | 2016.07.11 |
oracle 계정 lock 풀기 (0) | 2016.07.11 |