자동증가 SEQUENCE 생성

by 조쉬 posted Sep 12, 2016
?

단축키

Prev이전 문서

Next다음 문서

ESC닫기

크게 작게 위로 아래로 댓글로 가기 인쇄

CREATE SEQUENCE NAME
[INCREMENT BY n]
[START WITH n]
[{MAXVALUE n | NOMAXVALUE}]
[{MINVALUE n | NOMINVALUE}]
[{CYCLE | NOCYCLE}]
[{CACHE n | NOCACHE}]

예제

CREATE SEQUENCE TEST_TABLE_SEQ
INCREMENT BY 1 -- 증가 단위는 1
START WITH 1 -- 1부터 시작
NOMAXVALUE -- 최대값 제한 없음
NOCYCLE
NOCACHE

사용

--값 가져오기

--무조건 다음 증가한 값을 가져온다

INSERT INTO TEST_TABLE

(TESTID1,TESTID2, ...생략... CREDATE,CREUSER)

VALUES

(TEST_TABLE_SEQ.NEXTVAL, ...생략... SYSDATE,'TESTUSER');

--값을 증가시키지 않고 조회만 하기

SELECT TEST_TABLE_SEQ.CURRVAL FROM DUAL;

※ 시퀀스 생성후 .NEXTVAL을 한번도 실행하지 않은 상태로 .CURRVAL로 현재 값을 조회하면

'ORA-08002: 시퀀스 KR_VENDOR_STAMP_SEQ.CURRVAL은 이 세션에서는 정의 되어 있지 않습니다.'

에러 발생함.