오라클 시퀀스 생성 및 수정, 삭제 Oracle

시퀀스는 유일한 값을 생성해주는 오라클 객체로 보통 primary key로 사용할 수 있는

순차적으로 증가하는 숫자 컬럼을 생성할 때 사용한다.

 

CREATE SEQUENCE 시퀀스이름

  [INCREMENT BY 숫자]
  [START WITH 숫자]
  [MAXVALUE 숫자 or NOMAXVALUE]
  [MINVALUE 숫자 or NOMINVALUE]
  [CYCLE or NOCYCLE]
  [CACHE or NOCACHE];

 

increment by : 시퀀스의 증가 값, 생략시 1씩 증가

start with : 시퀀스의 시작 값, 1로 지정하면 1부터 순차적으로 증가, 생략시 1

 

MAXVALUE 숫자 or NOMAXVALUE : MAXVALUE는 시퀀스가 증가할 수 있는 최대값,

                                                      NOMAXVALUE는 오름차순 최대 10의 27승 까지, 내림차순 -1 까지 생성 

MINVALUE  숫자 or NOMINVALUE : MINVALUE는 시퀀스의 최소값을 지정, 기본값은 1,

                                                     NOMINVALUE는 오름차순 1 까지, 내림차순 -10의 26승 까지

CYCLE or NOCYCLE : CYCLE은 시퀀스가 최대값 도달 후 다시 처음부터 시퀀스 생성

                                 NOCYCLE은 최대값에 도달해도 다시 시퀀스를 생성하지 않음

CACHE or NOCACHE : CACHE는  시퀀스 값을 메모리에 할당, 기본값은 20

                                   NOCACHE는  시퀀스를 메모리에 할당하여 사용하지 않음.

<시퀀스 생성 예(기본값으로 생성할 경우)>

 

CREATE SEQUENCE 시퀀스이름;

 

<생성된 시퀀스 정보 보기>

 

select * from user_sequeneces;

 

<insert 문에서 시퀀스 호출하기>

 

SQL>insert into test(num, name, reg_date) values (num_seq.NEXTVAL, 'john', sysdate);


num_seq : 시퀀스명

currval : 현재 시퀀스 값을 반환

nextval : 현재 시퀀스값의 다음 값을 반환

 

<시퀀스 수정>

 

start with 는 수정할 수 없음,  start with를 제외하고 시퀀스 생성시 사용하는 옵션 모두 사용가능

SQL>alter sequence 시퀀스명

        increment by 2;

 

<시퀀스 삭제>

 

SQL>drop sequence 시퀀스명;


덧글

댓글 입력 영역

애드센스(468*60)



애드센스(160*600)