라벨이 SEQUENCE인 게시물 표시

[Oracle] 오라클 SEQUENCE(시퀀스)

시퀀스 자동 증가번호에 쓰임 MAX+1 대신 사용 가능한 것 무조건 증가만 함 중간에 삭제해도 대체되지 않고 마지막값에 이어서 증가됨 PRIMARY KEY에 자주 쓰임 => 중복이 없는 값을 만들기 때문에 자동 증가번호 사용 테이블과 시퀀스는 별도임 이름 : table명_column명_seq 삭제 : DROP SEQUENCE 시퀀스명; DROP SEQUENCE seq_no; 형식 CREATE SEQUENCE seq_no(시퀀스명) 옵션 /* 시작번호 , 증가값 , CACHE , CYCLE , MAX , MIN */ 예시 CREATE SEQUENCE seq_no START WITH 1 INCREMENT BY 1 NOCACHE NOCYCLE; START WITH 시작번호 INCREMENT BY 증가값, 증가폭 NOCYCLE | CYCLE CYCLE 1~10까지 사용 => 1로 돌아옴 PRIMARY KEY에 자주 쓰임 무조건 증가만 함 1 2 3 4 5 => 4번 삭제 => 1 2 3 5 6 … NOCYCLE CACHE | NOCACHE 미리 20정도를 저장 => NOCACHE MAX_VALUE , MIN_VALUE 사용 빈도가 거의 없다. seq.nextval 다음 값을 가지고 온다 SELECT seq_no.nextval FROM DUAL; seq.currval 현재 값을 가지고 온다 SQL> SELECT seq_no.currval FROM DUAL; 시퀀스 예제 테이블 추가하기(제약조건) CREATE TABLE jsp_board ( no NUMBER , name VARCHAR2 ( 34 ) CONSTRAINT jb_name_nn NOT NULL , subject VARCHAR2 ( 1000 ) CONSTRAINT jb_subject_nn NOT NULL , content CLOB CONSTRAINT jb_content_nn NOT NULL , pwd VARCHAR2 ( 10 ) CONS