[DB]/[오라클]
12. 시퀀스와 인덱스
할수있다!긍정왕
2019. 5. 18. 23:45
▶ 시퀀스는 테이블 내 유일한 숫자를 자동으로 생성하는 자동 번호 발생기
º 시퀀스 생성
CREATED SEQUENCE [스키마명.]시퀀스명
INCREMENT BY 증감숫자
START WITH 시작숫자
NOMINVALUE | MINVALUE 최소값
NOMAXVALUE | MAXVALUE 최대값
NOCYCLE | CYCLE
NOCARE | CACHE; //CACHE : 메모리에 시퀀스 값을 미리 할당해 놓음
EX)
CREATE SEQUENCE MY_SEQ1
INCREMENT BY 1
START WITH 1
MAXVALUE 1000
NOCYCLE
NOCACHE;
-- 이 시퀀스는 1부터 시작해서 1씩 증가하여 최솟값부터 최대값까지 1000까지 순번을 자동 생성한다.
INSERT INTO EX2_8 (COL1) VALUES (MY_SEQ1.NEXTVAL);
NEXTVAL : 해당 시퀀스에서 다음 순번 값을 자동으로 가져온다.
//INSERT문이 아닌 SELECT문에서 사용하더도 값이 증가된다. // SELECT MY_SEQ1.NEXTVAL FROM DUAL;
CURRVAL : 현재의 값을 알수 있다.
SELECT MY_SEQ1.CURRVAL FROM DUAL;
데이터를 집어 넣은후 확인을 해 보면
▶CURRVAL는 'CURRENT VALUE'의 약어로 현재의 값 반환
▶NEXTVAL 'NEXT VALUE'의 약어로서 다음 값이란 의미
▶데이터 딕셔너리 USER_SEQUENCES는 시퀀스 객체의 정보를 보여줌