프로그래밍/Oracle
[Oracle] Sequence (시퀀스)
eunki
2022. 6. 9. 18:06
728x90
Sequence (시퀀스)
순서대로 번호를 생성하는 번호 생성기다.
왜 시퀀스가 필요한가? 부서 테이블에 새로운 부서 번호를 입력해야 하는데, 10번 단위로 부서 번호가 입력되고 있고 지금 40번까지 입력된 상태다. 그래서 다음으로는 50번을 입력해야 한다.
이럴 때 현업에서 사용하는 안 좋은 방법은 dept 테이블을 검색해서 최대 부서 번호가 무엇인지 확인하는 것이다.
예제 1. 시퀀스를 이용하여 10씩 자동으로 증가하는 번호 생성기 사용
create sequence dept_seq
start with 60
increment by 10;
시작 숫자를 60으로 하고 10씩 증가하는 번호를 생성하는 시퀀스다.
insert into dept
values(dept_seq.nextval, 'aaaa', 'bbbb');
위의 SQL을 실행할 때마다 10씩 증가하는 번호를 생성하면서 입력되고 있다.
예제 2. 시퀀스를 생성하고 절대로 번호가 중복되지 않는지 확인
create sequence seq1
start with 1
increment by 1
maxvalue 100;
select seq1.nextval from dual;
728x90