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 |
---|