[Oracle SQL]SEQUENCE
> # SEQUENCE
- 자동으로 증가(감소)되는 숫자를 생성시키는 객체
- 일부 다른 DBMS에서는 숫자 컬럼의 속성 중 AUTO INCREMENT 속성으로 구현됨
- 오라클에서는 테이블과 독립된 객체로 제공
(사용형식)
CREATE [OR REPLACE] SEQUENCE 시퀀스명
[START WITH n] --시작 값, 기본은 MIN_VALUE
[INCREMENT BY n] --증감값
[MAXVALUE n|NOMAXVALUE] --최대값, 기본은 NOMAXVALUE이고 10^27까지 사용
[MINVALUE n|NOMINVALUE] --최소값, 기본은 NOMINVALUE이고 -(10^27)까지 사용
[CYCLE|NOCYCLE] -- 최대(최소)값까지 도달 후 다시 SEQUNECE 생성여부 기본은 NOCYCLE
[CACHE n|NOCACHE] -- 캐쉬에 미리 만들어 놓고 사용할지 여부 기본은 CACHE 20
[ORDER|NOORDER] --시퀀스 객체 생성을 보증할지 여부 기본은 NOORDER
**시퀀스 객체의 Pseudo Column(의사컬럼)
--------------------------------------------------------------------------
Pseudo Column 내용
--------------------------------------------------------------------------
시퀀스명.CURRVAL 시퀀스객체의 현재 값
시퀀스명.NEXTVAL 시퀀스객체의 다음 값
--------------------------------------------------------------------------
*** 해당 세션에서 시퀀스 객체는 적어도 한 번이상의 NEXTVAL 이 수행된 후 CURRVAL 에 값이 배정됨
사용예) LPROD 테이블에 신규 분류코드를 추가 삽입하기 위한 시퀀스를 생성하고 다음 분류코드를 추가삽입하시오. 시퀀스는 LPROD_ID 데이터로 사용
[자료]
LPROD_GU: 'P501'
LPROD_NM: 농산물
LPROD_GU: 'P502'
LPROD_NM: '임산물'
(시퀀스생성)
CREATE SEQUENCE SEQ_LPROD_ID
START WITH 10;
SELECT SEQ_LPROD_ID.NEXTVAL FROM DUAL;
SELECT SEQ_LPROD_ID.CURRVAL FROM DUAL;
INSERT INTO LPROD
VALUES(SEQ_LPROD_ID.CURRVAL, 'P501', '농산물');
SELECT * FROM LPROD;
INSERT INTO LPROD
VALUES(SEQ_LPROD_ID.NEXTVAL, 'P502', '임산물');
SELECT * FROM LPROD;
Author And Source
이 문제에 관하여([Oracle SQL]SEQUENCE), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@vgo_dongv/Oracle-SQLSEQUENCE저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)