MS-SQL에서 테이블 생성시 자동증가할수 있는 명령어가 있습니다.
근데 오라클은 없냐고 반문하시면 비슷하게 한번 만들어 보겠습니다.

 

아래와 같이 SEQUENCE 를 생성하고 인서트할때 시퀀스명.NEXTVAL을 이용하면 됩니다.

 

1. SEQUENCE 생성
   create sequence autonum 
     increment by 1   -- 1씩 증가하라는거고요
     start with 1        -- 1부터 시작이고요 100 시작할려면 100 이라고 쓰시면 됩니다.
     nomaxvalue       -- 최대값 제한이 없다
     nocycle             
     nocache;
 
DEFAULT VALUE를 이용할려고 했는데 이것도 안됩니다.

create table test(num number default autonum.nextval, name varchar2(10)); 
1행에 오류:
ORA-00984: 열을 사용할 수 없습니다

 

2. TABLE 생성
  create table test(num number, name varchar2(10));

 

3. 자동증가값 생성
  입력시 다음과 같이 해주시면 됩니다.
  insert into test (num)  values (autonum.nextval);

 

조회 해보면 1 값이 들어가 있습니다.


select * from test

       NUM NAME
---------- ----------
         1

 

삭제는 drop sequence autonum; 이렇게 하시면 됩니다.

 

유의할 사항은 시퀀스명.Nextval 하면 전에 값으로 되돌릴수 없습니다.

현재값은 시퀀스명.CurrVal 로 조회 하시면 됩니다.

 

select 시퀀스명.currval from dual;

+ Recent posts