Oracle 에서는 MySql에 있는 Auto_Increment 기능이 없다.

그렇기에 자동으로 인덱스값을 증가시켜주기 위해서는 시퀀스를 생성해서 사용해야한다.



1) 예제 테이블 생성

create table tmp(

    idx_tmp number(10),

    name    varchar(1000)

);


예제로 사용할 TMP테이블을 생성하였다.

이제 idx_tmp 의 값을 차례대로 증가시키는 시퀀스를 생성해야한다.



2) 시퀀스 생성

CREATE SEQUENCE tmp_seq START WITH 1 INCREMENT BY 1 MAXVALUE 100 CYCLE NOCACHE;


tmp_seq라는 시퀀스를 만드는 sql이다.

간단하게 키워드에대한 설명을 하자면 아래의 표를 확인하길 바란다.


CREATE SEQUENCE “스키마명.시퀀스명”
MINVALUE -- 시퀀스가 시작되는 최초의 숫자
MAXVALUE --시퀀스가 끝나는 최대 숫자
INCREMENT BY -- 시퀀스가 증가되는 단위
START WITH -- 시퀀스 생성이 시작되는 값
NOCACHE  -- 캐시를 사용하지 않음
NOORDER  --요청되는 순서대로 값을 생성하지 않음
NOCYCLE  --초기값부터 다시 시작하지 않음

tmp_seq 시퀀스는 1부터 시작하여 1씩 증가하여 100까지 도는 시퀀스이다.



3) 시퀀스를 사용한 값 삽입


INSERT INTO tmp values(tmp_seq.NEXTVAL, 'tmptmp');


이제 insert할때 시퀀스명.NEXTVAL 함수를 사용하면 자동으로 1씩 증가되어 값이 추가되는걸 확인할 수 있다.



4) 값 조회


select * from tmp;



'Database > Oracle' 카테고리의 다른 글

[Oracle DB] ORA-12638 신용검색에 실패했습니다 오류  (1) 2018.09.06

+ Recent posts