본문 바로가기
Oracle/Index, Sequence, Synonym

데이터 베이스_ 오라클 [Sequence] 활용 3 수정

by Super Santj 2019. 7. 3.

시퀀스 수정 => 시퀀스 생성과 형식이 거의 같다. create 를 alter로 변경하면 됨.

형식_

alter SEQUENCE sequence_name 
[START WITH n] ① 
[INCREMENT BY n] ② 
[{MAXVALUE n | NOMAXVALUE}] ③
[{MINVALUE n | NOMINVALUE}] ④
[{CYCLE | NOCYCLE}] ⑤
[{CACHE n | NOCACHE}] ⑥

※수정시 주의할점

아래와 같이 기존 b_dept2_deptno2 시퀀스를 수정을 하려하지만, 오류가 난다.

SQL> alter sequence b_dept2_deptno2
  2  increment by 2
  3  maxvalue 23         ==>현재값 80 (모순이기에 수정이 안된다. 반드시 현재값(80)이상보다 크게 해야한다.)
  4  minvalue 1
  5  nocycle
  6  nocache;
alter sequence b_dept2_deptno2
*
1행에 오류:
ORA-04009: MAXVALUE 에 현재치보다 작은 값을 지정할 수 없습니다

오류의 이유는 maxvalue가 데이터에 들어가있는 최대 값보다 작아지는 경우, 수정이 불가하다. 즉 항상 최대값보다 적어야 한다. 만약 현재 값보다 적은 값으로 수정으로 하고싶다면, 생성했던 시퀀스를 지우고 다시 만들면 된다.

형식2_

만들었던 시퀀스를 삭제를 하려한다면??

시퀀스 삭제는 DDL문으로 drop sequence 삭제시킬 시퀀스명

SQL> drop sequence b_dept2_deptno2;

시퀀스가 삭제되었습니다.

이렇게 삭제가 된다.

 

**중요**

정리하자면, 숫자데이터 중에서 중복되지 않게 숫자 데이터를 순차적으로 저장시킬때 사용하는 오라클 객체

**중요**

댓글