sequence 간단 한 소개

Oracle 에 서 는 sequence 대상 을 제공 합 니 다. 시스템 에서 자체 성장 하 는 시리 얼 번 호 를 제공 합 니 다. 일반적으로 데이터베이스 데이터 기록 을 생 성 하 는 자체 성장 메 인 키 나 번 호 를 생 성 하 는 데 사 용 됩 니 다. 다음은 sequence 대상 의 생 성, 수정, 삭제 등에 자주 사용 되 는 작업 을 소개 합 니 다. 
 
1. 생 성 Sequence  우선 사용 자 는 CREATE SEQUENCE 또는 CREATE ANY SEQUENCE 권한 이 있어 야 합 니 다. 그리고 아래 명령 을 사용 하여 sequence 대상 을 생 성 합 니 다.
 
CREATE  SEQUENCE emp_sequence 
INCREMENT  BY   1    --         
  START  WITH   1     --   1      
  NOMAXVALUE     --          
  NOCYCLE      --      ,     
  CACHE  10 ;

 
[설명]  CACHE 값 을 지정 하면 ORACLE 는 메모리 에 sequence 를 미리 설치 하여 빨리 액세스 할 수 있 습 니 다.cache 에서 꺼 낸 후, Oacle 은 자동 으로 cache 로 한 그룹 을 더 가 져 옵 니 다.cache 를 사용 하면 데이터 베 이 스 를 갑자기 비정상적 으로 다운 (shutdown abort) 하면 cache 의 sequence 를 잃 어 버 릴 수 있 습 니 다. 따라서 create sequence 를 사용 할 때 nocache 로 이 를 방지 할 수 있 습 니 다.  emp sequence 가 정의 되면 CURRVAL, NEXTVAL 을 사용 할 수 있 습 니 다. 사용 하 다 sequence:
 
sequence.CURRVAL    --    sequence     
sequence.NEXTVAL    --   sequence  ,     sequence  

 
[설명]첫 번 째 NEXTVAL 은 초기 값 을 되 돌려 줍 니 다. 다음 NEXTVAL 은 정 의 된 INCREMENT BY 값 을 자동 으로 증가 시 킨 다음 에 추 가 된 값 을 되 돌려 줍 니 다. CURVAL 은 항상 현재 SEQUENCE 값 을 되 돌려 줍 니 다. 그러나 첫 번 째 NEXTVAL 이 초기 화 된 후에 야 CURVAL 을 사용 할 수 있 습 니 다. 그렇지 않 으 면 오류 가 발생 합 니 다. 한 번 에 NEXTVAL 은 SEQUENCE 값 을 한 번 증가 시 킵 니 다. 따라서 같은 문 구 를 사용 할 때 더 많은 값 을 사용 합 니 다.NEXTVAL 의 값 이 다 릅 니 다. 2. Sequence 를 수정 합 니 다.  사용자 또는 이 sequence 의 owner 또는 ALTER ANY SEQUENCE 가 있 습 니 다. 권한 이 있어 야 sequence 를 변경 할 수 있 습 니 다. start 를 제외 한 모든 sequence 인 자 를 alter 할 수 있 습 니 다. start 값 을 바 꾸 려 면 drop sequence 를 다시 re - create 해 야 합 니 다. 명령 형식 은 다음 과 같 습 니 다.
 
 
ALTER  SEQUENCE emp_sequence 
  INCREMENT  BY   10  
  MAXVALUE  10000  
  CYCLE    --   10000       
   NOCACHE ;
 
3.  Sequence 삭제 
 
DROP  SEQUENCE order_seq;

 
 
 
 

좋은 웹페이지 즐겨찾기