1. Sequence
- 데이터베이스에서 특정 규칙에 맞는 연속 숫자를 생성하는 객체이다.
/* Sequence 예시 */
SELECT *
FROM USER_SEQUENCES;
1.1 CREATE SEQUENCE
/* CREATE SEQUENCE */
CREATE SEQUENCE 시퀀스이름
[INCREMENT BY n]
[START WITH n]
[MAXVALUE n | NOMAXVALUE]
[MINVALUE n | NOMINVALUE]
[CYCLE | NOCYCLE]
[CACHE n | NOCACHE];
요소 | 설명 |
시퀀스 이름 | - 생성할 시퀀스 이름을 지정한다. - 아래 요소들을 지정하지 않을 경우 1부터 시작하여 1만큼 계속 증가하는 시퀀스가 생성된다. - 필수값이다. |
INCREMENT BY | - 시퀀스에서 생성할 번호의 증가 값을 지정한다. - 기본값은 1이다. |
START WITH | - 시퀀스에서 생성할 번호의 시작 값을 지정한다. - 기본값은 1이다. |
MAXVALUE | NOMAXVALUE | - 시퀀스에서 생성할 번호의 최댓값을 지정한다. - 시작 값(START WITH) 이상, 최솟값(MINVALUE)을 초과하는 값으로 지정해야 한다. - NOMAXVALUE로 지정하였을 경우 오름차순이면 10^27, 내림차순이면 -1로 설정된다. |
MINVALUE | NOMINVALUE | - 시퀀스에서 생성할 번호의 최솟값을 지정한다. - 시작 값(START WITH) 이하, 최댓값(MAXVALUE) 미만인 값으로 지정해야 한다. - NOMINVALUE로 지정하였을 경우 오름차순이면 1, 내림차순이면 10^-26으로 설정된다. |
CYCLE | NOCYCLE | - 시퀀스에서 생성한 번호가 MAXVALUE에 도달했을 경우 CYCLE이면 START WITH 값에서 다시 시작된다. - 시퀀스에서 생성한 번호가 MAXVALUE에 도달했을 경우 NOCYCLE이면 번호 생성이 중단되고, 이때 추가 번호 생성을 요청하면 오류가 발생된다. |
CACHE | NOCACHE | - 시퀀스가 생성할 번호를 메모리에 미리 할당해 놓은 수를 지정한다. - NOCACHE는 미리 생성하지 않도록 설정한다. - 생략하면 기본값은 20으로 설정된다. |
- CREATE문으로 시퀀스를 생성할 수 있다.
/* CREATE SEQUENCE 예시 */
CREATE SEQUENCE SEQ_DEPT_SEQUENCE
INCREMENT BY 10
START WITH 10
MAXVALUE 90
MINVALUE 0
NOCYCLE
CACHE 2;
1.2 SEQUENCE 사용
종류 | 설명 |
NEXTVAL | 다음 번호를 생성한다. |
CURRVAL | - 시퀀스에서 마지막으로 생성한 번호를 반환한다. - 시퀀스를 생성하고 바로 사용하면 번호가 만들어진 적이 없으므로 오류가 난다. |
/* NEXTVAL 예시 */
INSERT INTO DEPT_SEQUENCE (DEPTNO, DNAME, LOC)
VALUES (SEQ_DEPT_SEQUENCE.NEXTVAL, 'DATABASE', 'SEOUL');
/* CURRVAL 예시 */
SELECT SEQ_DEPT_SEQUENCE.CURRVAL
FROM DUAL;
1.3 ALTER SEQUENCE
/* ALTER SEQUENCE */
ALTER SEQUENCE 시퀀스이름
[INCREMENT BY n]
[MAXVALUE n | NOMAXVALUE]
[MINVALUE n | NOMINVALUE]
[CYCLE | NOCYCLE]
[CACHE n | NOCACHE];
- ALTER 명령어로 시퀀스를 수정할 수 있다.
- 옵션을 재설정할 수 있으나, START WITH 값은 변경할 수 없다.
/* ALTER SEQUENCE 예시 */
ALTER SEQUENCE SEQ_DEPT_SEQUENCE
INCREMENT BY 3
MAXVALUE 99
CYCLE;
1.4 DROP SEQUENCE
- DROP 명령어로 시퀀스를 삭제한다.
- 시퀀스를 삭제해도 시퀀스를 사용하여 추가된 데이터는 삭제되지 않는다.
/* DROP SEQUENCE 예시 */
DROP SEQUENCE SEQ_DEPT_SEQUENCE;
참고
- 『오라클로 배우는 데이터베이스 입문』
'Database' 카테고리의 다른 글
Constraint (0) | 2021.11.01 |
---|---|
Synonym (0) | 2021.10.28 |
View (0) | 2021.10.28 |
Index (0) | 2021.10.26 |
Data Dictionary (0) | 2021.10.26 |