- 연속적인 번호를 만들어주는 기능
- 시퀀스란 자동으로 순차적으로 증가하는 순번을 반환하는 데이터 베이스 객체
- 보통 PK값에 중복값을 방지하기 위해 사용
- 예를 들어 게시판에 글이 하나 추가될 때마다 글번호(PK)가 생겨야 한다고 가정
-> 만약 100번가지 글 번호가 생성되어 있다면 그 다음 글이 추가가 되었을 겨우 글 번호가 101번으로 하나의 row를 생성해주어야 함
-> 이 때 101번이라고 하는 숫자를 얻으려면 기존 글 번호 중 가장 큰 값에 +1을 하는 로직을 어딘가에 넣어야하는데 시퀀스를 이용하면 이러한 로직이 필요없이 데이터 베이스에 row가 추가될 때마다 자동으로 +1 시켜주어 매우 편리
1. 시퀀스 생성 옵션
- start with n : 초기화 값
- increment by n : 증가값
- maxvalue n : 최대값
- nomaxvalue : 무한대값
- minvalue n : 최소값
- nominvalue : 무한대값
- cycle :
- nocycle : 기본값은 nocycle
-- sequence : 제품번호를 생성하는 시퀀스 만들기
CREATE SEQUENCE seq_serial_no
INCREMENT BY 1
START WITH 100
MAXVALUE 110
MINVALUE 99
CYCLE
cache 2
;
CREATE TABLE goods (
good_no number(3),
good_name varchar2(10)
);
-- nextval : 다음값
INSERT INTO goods
VALUES (seq_serial_no.nextval, '제품1');
SELECT * FROM GOODS g;
-- 현재 seq 번호
SELECT seq_serial_no.currval FROM dual;
-- seq 삭제
DROP SEQUENCE seq_serial_no;