시퀀스 SEQUENCE
자동으로 증가하는 순번을 반환하는 객체
1. 시퀀스 생성
RESOURCE권한 안주면 SEQUENCE 만들 수 없다.
CREATE SEQUENCE SELL_NO_SEQ
INCREMENT BY 1 --증가값, 생략가능 (생략하면 1)
START WITH 20 --시작값
MINVALUE 10 --최소값
MAXVALUE 30 --최대값
NOCYCLE; --CYCLE:순환, NOCYCLE:비순환
20부터 시작해서 1씩 증가하며, 최소값은 10 & 최대값은 30인 비순환 sequence를 생성했다.
순환을 설정했다면 20, 21, .... 29, 30, 10, 11, 12... 이런식으로 순번이 생기겠지만, nocycle로 설정했다.
2. 설정한 시퀀스 다음 값 확인
시퀀스명.NEXTVAL
SELECT SELL_NO_SEQ.NEXTVAL FROM DUAL;
설정한 시퀀스를 확인하기 위해 위와 같은 명령문을 작성하고 실행한다.
NEXTVAL 으로 SEQUENCE의 다음값을 가져온다.
실행할 때마다 시퀀스 값이 20, 21, 22.... 30 으로 나온다.
30까지 나오고 이후는 에러가 뜬다. NOCYCLE이기때문에 최대값에서 시퀀스가 멈추기 때문이다.
3. 시퀀스 현재값 조회
시퀀스명.CURRVAL
SELECT SELL_NO_SEQ.CURRVAL FROM DUAL;
SEQEUNCE 순번은 되돌릴 수 없지만, 현재값(CURRVAL)은 조회 가능하다.
4. 순환 시퀀스
DROP SEQUENCE SELL_NO_SEQ;
CREATE SEQUENCE SELL_NO_SEQ
INCREMENT BY 1
START WITH 20
MINVALUE 10
MAXVALUE 30
CYCLE;
DROP으로 SEQUENCE 삭제한 뒤에, CYCLE로 다시 만들어주면 20, 21, 22... 30, 10, 11, 12 ... 으로 순환한다.
5. 시퀀스 생성 기본값
CREATE SEQUENCE SELL_NO_SEQ2;
아무런 조건을 주지않고 SEQUENCE를 만들어보았다.
MINVALUE, INCREMENT, START 모두 1로 설정되고 MAXVALUE는 9999999999999999999999999999 으로 설정된다.
NO CYCLE이 기본이다. (CYCLE_FLAG : N)
SEQUENCE 기본설정값

6. 시퀀스 삭제
DROP SEQUENCE SELL_NO_SEQ;
'DBMS > Oracle' 카테고리의 다른 글
SQL 함수 (0) | 2022.05.20 |
---|---|
제약조건 CONSTRAINT 종류, 생성, 수정, 조회, 삭제, 활성/비활성 (0) | 2022.05.20 |
외래키 (Foreign Key) - 부모테이블, 자식테이블 / CASCADE (0) | 2022.05.20 |
조인 JOIN : 내부조인(동일조인, 자연조인, 교차조인) / 외부조인(+) : LEFT, RIGHT (2) | 2022.05.20 |
정렬 ORDER BY / 순번 ROWNUM (1) | 2022.05.20 |