0508 SEQUENCE

인삼주·2023년 5월 8일
0

DB 모델링과 OracleSQL

목록 보기
14/16

시퀀스란 순차적으로 증가하는 순번을 자동으로, 연속적인 숫자를 생성해내는 객체.

INCREMENT BY : 시퀀스 실행 시 증가시킬 값
START WITH : 시퀀스의 시작값이다. (MINVALUE과 같거나 커야 한다)
MINVALUE : 시퀀스가 시작되는 최솟값이다.
MAXVALUE : 시퀀스가 끝나는 최댓값이다.
NOCYCLE | CYCLE : NOCYCLE (반복안함), CYCLE(시퀀스의 최댓값에 도달 시 최솟값 1부터 다시시작)
NOCACHE | CACHE : NOCACHE(사용안함), CACHE(캐시를 사용하여 미리 값을 할당해 놓아서 속도가 빠르며, 동시 사용자가 많을 경우 유리)
NOORDER | ORDER : NOORDER(사용안함), ORDER(요청 순서로 값을 생성하여 발생 순서를 보장하지만 조금의 시스템 부하가 있음)

시퀀스를 사용할 때에는 NEXTVAL을 이용하여 시퀀스를 생성할 수 있음.

INSERT INTO LPROD (LPROD_ID, LPROD_GU, LPROD_NM) 
VALUES (LPROD_SEQ.NEXTVAL, 'P203', '아동복' );

다음번호로 증가
SELECT LPROD_SEQ.NEXTVAL FROM DUAL;

현재번호
SELECT LPROD_SEQ.CURRVAL FROM DUAL;

SEQUENCE가 사용되는 경우

  • SELECT 문의 SELECT 절 (단, SUBQUERY, VIEW가 아닌)
  • INSERT 문의 SELECT 절
  • INSERT 문의 VALUES 절
  • UPDATE 문의 SET 절

SEQUENCE가 제한되는 경우

  • SELECT, DELETE, UPDATE에서의 서브쿼리
  • VIEW의 QUERY 구문
  • DISTINCT가 있는 SELECT문
  • GROUP BY, ORDER BY가 있는 SELECT문
  • SET 연산자(UNION, INTERSECT, MINUS)가 있는 SELECT문
  • SELECT 문의 WHERE절
  • CREATE / ALTER TABLE 에서 컬럼의 DEFRAULT 값
  • CHECK 제약조건

0개의 댓글