시퀀스, Sequence
- 데이터베이스 객체 중 하나
- 오라클 전용 객체(다른 DBMS 제품에는 없음)
- 일련 번호를 생성하는 객체
- (주로) 식별자(일련번호)를 만드는데 사용한다. > PK 값으로 사용한다.
시퀀스 객체 생성하기
create sequence 시퀀스명
increment by n --증감치(기본값 1)
start with n --시작값(seed)
maxvalue n
minvalue n
cycle
cache n;
- 증가 값 (INCREMENT BY): Sequence에서 값이 증가할 크기를 정의
- 시작 값 (START WITH): Sequence가 시작할 숫자를 정의
- 최소 값 (MINVALUE): Sequence에서 허용되는 최소 값
- 최대 값 (MAXVALUE): Sequence에서 허용되는 최대 값
- 순환 여부 (CYCLE/NOCYCLE): Sequence가 최대 값에 도달하면 순환 여부를 정의
CREATE SEQUENCE seqMemo;
INSERT INTO tblmemo (seq, name, memo, regdate) VALUES (seqMemo.nextVal, '홍길동','메모',sysdate);
시퀀스 객체 삭제하기
시퀀스 객체 사용하기(함수)
- 시퀀스객체.nextVal : Sequence에서 다음 값을 가져온다.
- 시퀀스객체.currVal : Sequence의 현재 값을 가져온다.
SELECT seqNum.nextVal FROM dual;
-- nextVal 호출하면 나오게 될 숫자를 반환
SELECT seqNum.currVal FROM dual;
-- 종료 후 재 실행 : ORA-08002: sequence SEQNUM.CURRVAL is not yet defined in this session
-- 계속 접속 중일때만 활용 가능하다
-- currVal는 최소 1번 이상의 nextVal를 호출해야 사용 가능하다.