Oracle Database 38. 시퀀스
시퀀스
- 테이블 내의 컬럼 중에 primary key를 지정하기 애매한 경우 1부터 1씩 증가되는 값을 저장하는 컬럼을 추가하여 사용하는 경우가 있다.
- 이 때, 1부터 1씩 증가되는 값을 구하기 위해 시퀀스를 사용한다.
- create sequence 시퀀스이름
start with 숫자
increment by 숫자
maxvalue 숫자 or nomaxvalue
minvalue 숫자 or nominvalue
cycle or nocycle
cache 숫자 or nocache - start with 숫자 : 시작 값. 시작 값은 절대 최소 값보다 작을 수 없다.
- increment by : 증가값
- maxvalue : 시퀀스가 가질 수 있는 최대 값.
생략하거나 nomaxvalue일 경우 10의 27승. - minvalue : 시퀀스가 가질 수 있는 최소 값
생략하거나 nominvalue일 경우 1.
cycle : 최대 혹은 최소값까지 갈 경우 순환한다.
cache : 시퀀스를 메모리상에서 관리할 수 있도록 설정한다.
메모리 상에서 관리를 하게 되면 속도가 빨라질 수 있다.
ex)
create table test_table1(
idx number constraint TEST_TABLE1_IDX_PK primary key,
number_data number not null
);
create sequence test_seq1
start with 0
increment by 1
minvalue 0;
select test_seq1.currval from dual;
insert into test_table1(idx, number_data)
values (test_seq1.nextval, 100);
insert into test_table1(idx, number_data)
values (test_seq1.nextval, 200);
select * from test_table1;
select test_seq1.currval from dual;
drop sequence test_seq1;