오라클 DB(sql)_기초 21 (Sequence, 시퀀스)
데이터베이스 2021. 5. 1. 20:05<시퀀스>
- 고유 번호를 생성해주는 번호 생성기
- 대부분 기본키값을 생성하는데 사용됨. - 중복이 되지 않는 번호 생성
- 공유가 가능함 >> 계정간에 함께 사용할 수 있음.
- 응용프로그램 코드 대체
- 시퀀스를 메모리에 캐시하면 액세스 효율이 높아짐. >> 거의 안함. 공간을 잡아먹어 효율이 떨어짐.
증가값
첫번째 생성 시퀀스 번호
생성값의 최대
캐시값을 쓴다/안쓴다(기본값-생략가능)
NOCYCLE >> 최대값에 도닫했을 경우 다시 처음부터 시작(기본값)
- Sequence 이름을 위처럼 설정해서 이름만 보고 성향을 파악할 수 있도록 해줌.
- 한번 생성된 번호는 다시 생성하지 않음. Nocycle의 경우 최대값에 도달할 경우 프로그램은 멈춤..
-
- User_sequence 데이터 딕셔너리 테이블을 조회하면 값을 확인할 수 있음.
- NEXTVAL >> 시퀀스 값 추출해서 CURRVAL 에 저장, CURRVAL은 NEXTVAL가 시행되기 전에 시행하지 않음.
(예제) 시퀀스 사용
** 시퀀스로 인해 삽입된 값을 지우고 다시 같은 시퀀스를 사용하면 지워진값 이후의 값을 추출하게 됨. 시퀀스 자체는 중복된 값을 추출하지 않기때문에 이미 추출한 값에 대해서 재추출하지 않음.
시퀀스는 보안과 전화 무관하기 때문에 공유가 가능함.
- 시퀀스 수정: Alter sequence >> 새로 생성될 sequence에 대해 적용됨. 기존설정으로 인한 데이터를 위배하는 경우에는 수정이 불가능하고, 시작값은 절대 바꿀 수 없음. 시작값을 변경하기 위해서는 기존 시퀀스를 지우고 재생성 하는 방법이 유일함.
- 시퀀스 제거 Drop sequence >> 제거해도 테이블에 저장된 시퀀스 번호는 사라지지 않음.
'데이터베이스' 카테고리의 다른 글
오라클 DB(sql)_기초 23 (Index) (0) | 2021.05.01 |
---|---|
오라클 DB(sql)_기초 22 (DCL) (0) | 2021.05.01 |
오라클 DB(sql)_기초 20 (Top-N 분석) (0) | 2021.05.01 |
오라클 DB(sql)_기초 19 (View) (0) | 2021.05.01 |
오라클 DB(sql)_기초 18 (제약조건) (0) | 2021.05.01 |