테이블의 데이터를 구분짓는 값으로 사용되는 오라클 시퀀스 생성 방법에 대해서 알아보겠습니다.
1. 시퀀스란?
- 테이블에 값을 insert 시 순차적인 숫자가 자동으로 저장되는 것
- Mysql은 auto_inrement, Ms-sql은 identity과 같은 기능을 한다
오라클에서 제공하는 기능의 시퀀스를 생성하여 사용하면 특정 테이블에 값을 입력했을 시 해당되는 컬럼에 순차적으로 번호를 매기는 기능을 수행합니다.
보통 게시판에 사용할 DB에 적용하며 글이 작성되어 DB에 저장될때마다 시퀀스가 작동하여 글에대한 번호를 순차적으로 매기는 일을 합니다.
2. 사용 방법
2-1. 생성
CREATE SEQUENCE 이름 START WITH 1 MAXVALUE 99999999999999 MINVALUE 1 NOCYCLE CACHE 20 NOORDER;
2-2. 삭제
DROP SEQUENCE 이름
2-3. 사용
이름.NEXTVAL
위의 예제는 기본 시퀀스로써 시작 숫자는 1 최대는 99999999 최소 숫자는 1이며 사이클은 설정되지 않은 예제입니다.
이름.NEXTVAL 의 명령어를 number타입의 컬럼에 insert시 지정해 주시면 테이블에 값이 insert 될때마다 숫자가 순차적으로 생성되어 저장되게 됩니다.
3. 예제 소스
기존에 Board라는 테이블이 있는데 이곳에 nextval을 이용하여 데이터를 넣어보겠습니다.
시퀀스 이름은 num으로 만들었습니다.
insert into board values(num.nextval, 'IT정보사이트', '테스트','테스트', 0, sysdate, 12)
위의 insert 구분을 6번 수행했고 데이터가 저장된 모습입니다.
num 컬럼에 숫자를 지정하지 않았지만 num.nextval 명령어에 따라 1~6까지 순차적으로 저장된 모습입니다.
각가의 테이블에는 값에 대한 고유값이 필요하므로 오라클 인덱스 생성을 통하여 고유값을 만들어 사용해 보시기 바랍니다.
김군호
감사합니다.