사용 이유 :
MySql에는 테이블을 생성할 때 Pk (기본키 : primary key) 컬럼에 auto_increment로 중복되지 않는 유일한 값을 가진 컬럼을 만들 수 있음.
-- 게시글을 저장하는 테이블 Board_tbl 생성
CREATE TABLE 'Board_tbl'(
'bno' int(100) NOT NULL AUTO_INCREMENT PRIMARY KEY,
'name' varchar(10),
'text' varchar
);
오라클에는 auto_increment 기능 대신 Sequence로 유일한 값을 줄 수 있음.
-- 자동으로 번호를 1씩 증가시켜주는 시퀀스 생성
Create Sequence bno_seq
Increment by 1
Start with 1
NoMaxValue
Minvalue 1
NOCYCLE
Cache;
사용법 :
CREATE SEQUENCE [ 시퀀스 이름]
INCREMENT BY [ 증가 OR 감소할 숫자] -- 양수면 증가, 음수면 감소, 기본값 : 1
START WITH [ 시작숫자] -- 시작숫자의 기본값 : 증가일 때 MINVALUE , 감소일 때 MAXVALUE
[MAXVALUE N | NOMAXVALUE N] -- MAXVALUE :최대값을 N으로 설정. 시작숫자와 같거나 커야하고, MAXVALUE 보다 작아야 함.
-- NOMAXVALUE : 기본값 : 증가일 때 1027 감소일 때 -1
[MINVALUE | NOMINVALUE] -- MINVALUE : 최소값을 N으로 설정. 시작숫자와 작거나 같아야하고, MINVALUE 보다 커야함
-- NOMINVALUE : 기본값 : 증가일 때 1 , 감소일 때 -1028
[ CYCLE | NOCYCLE] -- CYCLE : 지정된 값이 최대값까지 증가하게 되면, 다시 START WITH의 [시작숫자]
-- 에서 다시 시퀀스를 시작하도록 함.
-- NOCYCLE : 지정된 값이 최대값까지 증가하게 되면, 에러를 유발시킴
[ CACHE | NOCACHE ] -- CACHE : 메모리 상의 시퀀스 값을 관리하도록 하는 것. 기본 값 20.
-- NOCACHE : 메모리 상에서 시퀀스를 관리하지 않음.
시퀀스 관련 데이터 딕셔너리
USER_SEQUENCE 는 시퀀스 객체의 정보를 보여주는 데이터 딕셔너리.
SEQUENCE_NAME : 시퀀스 객체의 이름을 저장합니다.
MIN_VALUE : 최소값
MAX_VALUE : 최대값
INCREMENT_BY : 증가값
CYCLE_FLAG : 사용하는지 Y / N 로 표현
ORDER_FLAG :
CACHE_SIZE : 캐시의 크기
LAST_NUMBER : 마지막 숫자 값