오라클 DB(sql)_기초 21 (Sequence, 시퀀스)

데이터베이스 2021. 5. 1. 20:05

<시퀀스>

  • 고유 번호를 생성해주는 번호 생성기
  • 대부분 기본키값을 생성하는데 사용됨. - 중복이 되지 않는 번호 생성
  • 공유가 가능함 >> 계정간에 함께 사용할 있음.
  • 응용프로그램 코드 대체
  • 시퀀스를 메모리에 캐시하면 액세스 효율이 높아짐. >> 거의 안함. 공간을 잡아먹어 효율이 떨어짐.

 

증가값

첫번째 생성 시퀀스 번호

생성값의 최대

캐시값을 쓴다/안쓴다(기본값-생략가능)

NOCYCLE >> 최대값에 도닫했을 경우 다시 처음부터 시작(기본값)

 

  • Sequence 이름을 위처럼 설정해서 이름만 보고 성향을 파악할 있도록 해줌.
  • 한번 생성된 번호는 다시 생성하지 않음. Nocycle 경우 최대값에 도달할 경우 프로그램은 멈춤..
  •  

 

  • User_sequence 데이터 딕셔너리 테이블을 조회하면 값을 확인할 있음.

 

  • NEXTVAL >> 시퀀스 추출해서 CURRVAL 저장, CURRVAL NEXTVAL 시행되기 전에 시행하지 않음.
     

(예제) 시퀀스 사용

 

** 시퀀스로 인해 삽입된 값을 지우고 다시 같은 시퀀스를 사용하면 지워진값 이후의 값을 추출하게 . 시퀀스 자체는 중복된 값을 추출하지 않기때문에 이미 추출한 값에 대해서 재추출하지 않음.

 

시퀀스는 보안과 전화 무관하기 때문에 공유가 가능함.

 

  • 시퀀스 수정: Alter sequence >> 새로 생성될 sequence 대해 적용됨. 기존설정으로 인한 데이터를  위배하는 경우에는 수정이 불가능하고, 시작값은 절대 바꿀 없음. 시작값을 변경하기 위해서는 기존 시퀀스를 지우고 재생성 하는 방법이 유일.
  • 시퀀스 제거 Drop sequence >> 제거해도 테이블에 저장된 시퀀스 번호는 사라지지 않음.
admin