시퀀스 객체 SEQUENCE
자동 순번을 반환하는 객체로 (CURRVAL, NEXTVAL)사용하여 값을 확인하거나 값을 늘린다. NO CYCLE을 하면 값이 중복되지 않기 때문에 키값이 없는 테이블에 키값을 부여할 때 많이 사용한다.
1. 생성 방법 : CREATE SEQUENCE 시퀀스_이름
1
2
3
4
5
6
7
|
CREATE SEQUENCE 시퀀스이름
INCREMENT BY 1 -- 커지는 숫자 크기
START WITH 1 -- 시작 숫자
MINVALUE 1 -- 최소값
MAXVALUE 99999 --최대값
NOCYCLE -- 디폴트 NOCYCLE 최대, 최소 도달시 중지
NOCACHE ; -- 디폴트 NOCACEH 메모리에 값 미리 할당 여부
|
cs |
위의 방법에 따라 SEQ라는 이름의 시퀀스를 선언해 보았다. 시퀀스는 자바에서 게시글 숫자를 넣을 때도 활용하기에 좋다.
1
2
3
4
5
|
CREATE SEQUENCE my_seq
INCREMENT BY 1
START WITH 1
MINVALUE 1
MAXVALUE 9999 ;
|
cs |
반대로 값이 감소하는 시퀀스를 만들 수도 있다.
1
2
3
4
5
6
7
8
|
CREATE SEQUENCE my_seq2
INCREMENT BY -1
START WITH 1000
MINVALUE 1
MAXVALUE 1000
NOCYCLE
NOCACHE;
|
cs |
2. 값 확인, 값 증가 시키기 : .currval 과 .nextval
SELECT 시퀀스이름.CURRVAL 을 하면 현재 값을 확인할 수 있고 SELECT 시퀀스이름.NEXTVAL 을 하면 실행할 때마다 값을 증가시킬 수 있다. NEXTVAL을 실행할 때는 INCREMENT BY에서 커지는 숫자 크기를 입력했다면 그만큼 커지고 입력하지 않았다면 디폴트값인 1씩 커진다.
1
2
3
|
SELECT my_seq.nextval -- 값 증가(실행할 때 마다 값이 증가한다. )
, my_seq.currval -- 현재 값을 확인할 때 사용
FROM dual;
|
cs |
3. 수정하기 : ALTER SEQUENCE 시퀀스_이름 수정하려는_내용
1
2
|
ALTER SEQUENCE my_seq INCREMENT BY 2 --증가값을 2로 수정
ALTER SEQUENCE my_seq MAXVALUE 99999 --최대값을 수정
|
cs |
4.삭제 : DROP SEQUENCE 시퀀스_이름;
1
|
DROP SEQUENCE my_seq;
|
cs |
'DB' 카테고리의 다른 글
오라클 : 수식 연산자와 논리 연산자 (0) | 2022.07.27 |
---|---|
오라클 : 테이블 데이터의 삽입, 조회, 수정, 삭제 (0) | 2022.07.21 |
오라클 : 테이블의 생성시 제약조건과 삭제 (0) | 2022.07.21 |
오라클 : DDL, DML, DCL의 정의와 기본적인 특징 (0) | 2022.07.21 |
noSQL의 정의와 특징, 장단점을 알아보자 (0) | 2022.05.12 |
댓글