728x90
반응형
SMALL
시퀀스(SEQUENCE)란?
시퀀스는 자동으로 번호를 발생시켜 주는 역할을 하는 객체이다. 회원을 관리할 때 회원번호나, 게시판의 게시글 번호 등 테이블 내에서 데이터들을 구별해 줄 수 있는 기본키의 역할을 할 수 있다. MySQL에서는 AUTO_INCREMENT를 설정해 주면 되는데 오라클은 그런 기능이 없으므로 시퀀스를 생성해야 한다.
- 정수를 순차적으로 일정한 값마다 증가시키면서 생성한다.
- MySQL에서 AUTO_INCREMENT 같은 것이다.
시퀀스 생성 방법
CREATE SEQUENCE 시퀀스명
[START WITH 숫자]
[INCREMENT BY 숫자]
[MAXVALUE 숫자]
[MINVALUE 숫자]
[CYCLE | NOCYCLE]
[NOCACHE | CACHE 숫자]
시퀀스도 객체이므로 CREATE를 사용해서 생성한다.
- START WITH : 처음 발생 시킬 시작값을 지정할 수 있다 (기본값 1)
- INCREMENT BY : 얼마만큼씩 증가시킬 것인지에 대해 지정할 수 있다. (기본값 1)
- MAXVALUE : 최대값 (기본값 엄청 큰 수...)
- MINVALUE : 최솟값 (기본값 1)
- CYCLE | NOCYCLE : MAXVALUE 혹은 MINVALUE와 연관이 있다. 값의 순환여부(기본값 NOCYCLE)
- CYCLE : 시퀀스 값이 최댓값에 도달하면 다시 최솟값으로 순환하도록 설정
- NOCYCLE : 시퀀스 값이 최대값에 도달하면 더 이상 값을 생성하지 않는다
- NOCACHE | CACHE : 캐시메모리 할당 여부 (기본값 CHAR(20))
- 캐시메모리
- 미리 발생될 값들을 생성해서 저장해두는 공간.
- 매번 호출될 때마다 새로 번호를 생성하는 것이 아니라 캐시메모리라는 공간에 미리 생성해 둔 값을 가져다가 사용 (속도가 빠름)
- 캐시메모리
시퀀스 사용 방법
시퀀스명.CURRVAL : 현재 시퀀스 값. 마지막으로 성공한 NEXTVAL을 수행한 값이다.
시퀀스명.NEXTVAL : 현재 시퀀스 값에서 INCREMENT BY에 설정된 값만큼 증가된 값이다.
=> CURRVAL을 사용하려면 먼저 NEXTVAL을 사용한 후에 사용 가능하다.
시퀀스 변경 방법
ALTER SEQUENCE 시퀀스명
[INCREMENT BY 숫자]
[MAXVALUE 숫자]
[MINVALUE 숫자]
[CYCLE | NOCYCLE]
[NOCACHE | CACHE 숫자]
=> 시작값을 제외한 나머지 설정값을 변경할 수 있다.
728x90
반응형
LIST
'데이터베이스' 카테고리의 다른 글
[ORACLE] PL/SQL 제어문 - 조건문(IF-ELSIF-ELSE, CASE-WHEN-THEN) (0) | 2025.03.17 |
---|---|
[ORACLE] PL/SQL - PL/SQL 구조와 변수 (0) | 2025.03.17 |
[ORACLE] SQL - 뷰(VIEW) (0) | 2025.03.17 |
[ORACLE] 문자 처리 함수 - LPAD / RPAD (0) | 2025.03.13 |
[ORACLE] 문자 처리 함수 - SUBSTR (0) | 2025.03.12 |