시리얼 번호를 부여하고 싶으신가 본데
시퀀스를 사용하시는게 탁월한 선택이신 것 같습니다.
왜냐하면 어떤 순번 테이블의 컬럼의 MAX값(99)을 얻어서 다음 번호(99 + 1)
부여하는 것도 문제가 있습니다.
그 컬럼값(100)이 만약 삭제 되면 MAX값(99)은 다음은 당연히 100이 되겠죠
그럼 중복이 되겠지요.
이런 이유로 하여 시퀀스 데이블을 이용합니다. 시퀀스 테이블은 이전 값을
가지고 있어 중복될일 이 전혀 없으니 깐요...
그럼 시퀀스 에 대해 알아 보겠습니다.
▶ SQL> r
1 create sequence seq_inc
2 increment by 1
3 start with 51
4 maxvalue 또는 nomaxvalue 9999999
5 minvalue 또는 nominvalue 51
6 nocache 또는 cache
7* nocycle 또는 cycle
Sequence created.
=> 시퀀스 생성
▶ SQL> r
1 select seq_inc.nextval
2* from dual
=> 다음 시퀀스 값 조회
▶ SQL> select seq_inc.currval
2 from dual;
=> 현재 시퀀스 값 조회
▶ SQL> r
1 alter sequence seq_inc
2 increment by n
3 maxvalue/nomaxvalue n
4 minvalue/nominvalue n
5 nocache/cache
6* nocycle/cycle
Alter Sequence.
=> 시퀀스 수정
▶ SQL> drop sequence seq_inc
Sequence dropped.
=> 시퀀스 삭제.
조금이나마 도움이 되었으면 하네요.
좋은 하루 되십시요..
::김미나 님께서 쓰시길::
> 테이블의 id칼럼의 값을 처음부터 자동증가 시키려고하는데요.
> data가 테이블에 저장되면 자동으로 1.2.3...이런식으로 증가시키려고 합니다.
>
>
> 내용검색해보니
>
> "CREATE SEQUENCE문을 사용하여 시퀀스를 생성하고
>
> 시퀀스.nextval 을 입력값으로 하면 자동증가된 값들이 입력됩니다. "
>
> 라고 했는데 초보라서 어떻게 하는지 잘 모르겠네요..혹시 다른 방법도 있는지요?
>
|