SEQUENCE

✒️ 2025-05-28 17:34 내용 수정


참고 자료 : 해피밀세트's 오라클 SQL - 시퀀스(Sequence) 사용하기, 젠트's 오라클 시퀀스(Sequence) 생성 및 사용법(자동증가, 일련번호), 코딩팩토리's 오라클 시퀀스(Sequence) 사용법 총정리(생성, 조회, 수정, 삭제) 등, MS CREATE SEQUENCE(Transact-SQL)

자동으로 일련번호를 생성하는 데이터베이스 객체

CREATE SEQUENCE 시퀀스명
START WITH 시작숫자 -- 시작숫자 부터 카운팅
INCREMENT BY 증감숫자 -- 증감할 숫자
MINVALUE 최솟값 -- 최솟값
MAXVALUE 최댓값 -- 최댓값
[CYCLE|NOCYCLE] -- 최댓값 도달 시 시작숫자부터 반복 여부
[ORDER|NOORDER] -- 요청 순서대로 값을 생성할지 여부
[CACHE 숫자|NOCACHE]; -- 미리 공간을 할당할지 여부. 사용 시 기본값 20

SEQUENCE 접근

-- 시퀀스의 현재 순번 가져오기
SELECT 시퀀스명.CURRVAL FROM DUAL; 

-- 시퀀스의 다음 순번 가져오기
SELECT 시퀀스명.NEXTVAL FROM DUAL;

SEQUENCE 수정

ALTER SEQUENCE 시퀀스명 변경할내용1 변경할내용2;
ALTER SEQUENCE 시퀀스명 INCREMENT BY 1 MINVALUE 1 MAXVALUE 300;

SEQUENCE 삭제

DROP SEQUENCE 시퀀스명;

SEQUENCE 예시

-- SEQUENCE 생성
CREATE SEQUENCE SQ_TEST
START WITH 0 -- 0 부터 시작
INCREMENT BY 1 -- 1씩 증가
MINVALUE 0 -- 최솟값 0
MAXVALUE 100 -- 최댓값 100
NOCYCLE -- 순회 없음
CACHE 20; -- 캐시 20

-- 테이블 생성
CREATE TABLE "CHARACTER" (
	IDX NUMBER,
	NAME VARCHAR2(100),
	JOB VARCHAR2(100)
);

-- 테이블에 데이터 추가
INSERT INTO "CHARACTER" VALUES(SQ_TEST.NEXTVAL, '아이언클래드', '전사');
INSERT INTO "CHARACTER" VALUES(SQ_TEST.NEXTVAL, '스파이더맨', '기자');
INSERT INTO "CHARACTER" VALUES(SQ_TEST.NEXTVAL, '에지오', '암살자');

-- 테이블 데이터 확인
SELECT * FROM "CHARACTER";