2021. 4. 8. 18:55ㆍOracle 공부
이번에는 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 |