▶ 시퀀스(Sequence)란?
시퀸스는 유일(UNIQUE)한 값을 생성해주는 오라클(데이터베이스) 객체이며
시퀸스를 생성하면 기본 키와 같이 순차적으로 증가하는 칼럼을 자동적으로 생성할 수 있게 된다
보통 PK값에 중복값을 방지하기위해 사용한다.
시퀀스를 사용하면 특별한 로직이 필요없이 데이터베이스에 ROW가 추가될때마다 자동으로 +1을 시켜주어 매우 편리하다.
시퀀스(Sequence) 생성
--문법 CREATE SEQUENCE [시퀀스명] INCREMENT BY [증감숫자] --증감숫자가 양수면 증가 음수면 감소 디폴트는 1 START WITH [시작숫자] -- 시작숫자의 디폴트값은 증가일때 MINVALUE 감소일때 MAXVALUE NOMINVALUE OR MINVALUE [최솟값] -- NOMINVALUE : 디폴트값 설정, 증가일때 1, 감소일때 -1028 -- MINVALUE : 최소값 설정, 시작숫자와 작거나 같아야하고 MAXVALUE보다 작아야함 NOMAXVALUE OR MAXVALUE [최대값] -- NOMAXVALUE : 디폴트값 설정, 증가일때 1027, 감소일때 -1 -- MAXVALUE : 최대값 설정, 시작숫자와 같거나 커야하고 MINVALUE보다 커야함 CYCLE OR NOCYCLE --CYCLE 설정시 최대값에 도달하면 최소값부터 다시 시작 NOCYCLE 설정시 최대값 생성 시 시퀀스 생성중지 CACHE OR NOCACHE --CACHE 설정시 메모리에 시퀀스 값을 미리 할당하고 NOCACHE 설정시 시퀀스값을 메로리에 할당하지 않음
--예제 CREATE SEQUENCE EX_SEQ --시퀀스이름 EX_SEQ INCREMENT BY 1 --증감숫자 1 START WITH 1 --시작숫자 1 MINVALUE 1 --최소값 1 MAXVALUE 1000 --최대값 1000 NOCYCLE --순한하지않음 CACHE; --메모리에 시퀀스값 미리할당

CREATE SEQUENCE sequence_name [START WITH n] ① [INCREMENT BY n] ② [{MAXVALUE n | NOMAXVALUE}] ③ [{MINVALUE n | NOMINVALUE}] ④ [{CYCLE | NOCYCLE}] ⑤ [{CACHE n | NOCACHE}] ⑥
CREATE SEQUENCE sequence_name
[START WITH n] ①
[INCREMENT BY n] ②
[{MAXVALUE n | NOMAXVALUE}] ③
[{MINVALUE n | NOMINVALUE}] ④
[{CYCLE | NOCYCLE}] ⑤
[{CACHE n | NOCACHE}] ⑥
|
① START WITH 시퀀스의 시작 값을 지정한다. n을 1로 지정하면 1부터 순차적으로 시퀀스 번호가 증가한다. ② INCREMENT BY 시퀀스의 증가 값을 말한다. n을 2로 하면 2씩 증가한다. START WITH를 1로 하고 INCREMENT BY를 2 로 하면 1, 3, 5, 7로 시퀀스 번호가 증가하게 된다. |