Day38 - squence

2021. 4. 8. 18:55Oracle 공부

이번에는 squence (시퀀스) 에 대해서 알아 봅시다

 

squence

시퀀스는 유일한 번호를 생성합니다.

공유 가능한 객체 입니다.

주로 기본 키 값을 생성하기 위해 사용합니다.

메모리에 캐쉬(Cache)되면 시퀀스 값을 액세스 하는 효율이 증가합니다.

 

※ 어플리케이션 코드를 대체합니다. -> 이건 그냥 그렇구나 하고 넘어가면 됩니다.

 

시퀀스는 순차적으로 증가하는 값을 의미합니다.

 

시퀀스 생성

※ create sequence 시퀀스명 [ 옵션 ];

옵션을 생략하게 되면, 자동으로 기본값에 의해 생성 됩니다.

각각의 옵션을 전부 알 필요는 없습니다.

필요한 부분만 좀 보도록 하죠.

 

INCREMENT_BY -> 증가값

START WITH -> 시작값

MINVALUE -> 최소값

MAXVALUE -> 최대값

NOCACHE -> 캐시X ( 캐시 : 메모리에 미리 만들어 놓는다 )

NOCYCLE -> 반복X

 

☆ 확인을 하기 위해서 간단한 테이블을 만들어 봅시다. ☆

시퀀스 사용

시퀀스를 사용할때는 "시퀀스명.NEXTVAL" 을 사용하면 됩니다.

다음 값을 가져온다는 뜻 입니다.

이렇게 DEPT_NO 가 순차적으로 1씩 늘어난 것을 확인 할 수 있습니다.

 

SELECT 에 시퀀스를 사용해서 값을 확인 및 증가하는 방법도 있습니다.

CURRVAL -> 현재 시퀀스의 값 확인

NEXTVAL -> 시퀀스의 다음 값 ( 사용할 때마다 순차적으로 증가 함 )

 

그리고, 시퀀스의 값이 MAXVALUE 인 10을 증가하게 된다면 오류가 발생합니다.

이 해결을 위한 방법이 2가지가 있습니다.

시퀀스의 옵션을 수정하거나 , 시퀀스를 삭제하고 다시 만들거나

 

그런데, 위처럼 테이블에서 시퀀스를 사용하고 있다면, 시퀀스를 삭제하는게 바람직 할까요?

그렇기 때문에, 시퀀스를 수정시켜 주면 됩니다.

 

시퀀스 수정

ALTER SEQUENCE 시퀀스명 옵션 변경값;

시퀀스 삭제

DROP SEQUENCE 시퀀스명;

 

 

시퀀스를 처음으로 되돌리기

1. 현재 시퀀스를 확인.

2. INCREMENT(증가값)을 현재 시퀀스 만큼 - 하기

※ 최소값이 1이라서 1이 되도록 - 해주었습니다.

 

3. NEXTVAL을 이용해서 1번 실행하기

4. INCREMENT(증가값)을 다시 원상복구 하기.

 

※ 시퀀스의 응용 - 날짜뒤에 순서 붙이기.

 

이렇게 시퀀스에 대해서 알아 보았습니다.

 

고생하셨습니다.

'Oracle 공부' 카테고리의 다른 글

Day39 - 권한, 사용자 계정 생성, 수정, 삭제  (0) 2021.04.09
Day38 - index  (0) 2021.04.08
Day38 - view  (0) 2021.04.08
Day37 - 제약조건  (0) 2021.04.07
Day37 - DDL (테이블 생성, 테이블 변경, 테이블 삭제)  (0) 2021.04.07