시퀀스(Sequence)

치로·2024년 8월 2일
  • 연속적인 번호를 만들어주는 기능
  • 시퀀스란 자동으로 순차적으로 증가하는 순번을 반환하는 데이터 베이스 객체
  • 보통 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;

0개의 댓글