오라클 자동증가(Create sequence) 오라클 시퀀스 생성
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;
CREATE TABLE CLOB_TEST CREATE SEQUENCE no INCREMENT BY 1 START WITH 1 nomaxvalue --1부터 1씩 무한대로 증가 한다. --no로 시퀀스를 만들어 준다. insert into clob_test(seq) values(no.nextval) -- 인서트 할시 seq 컬럼에 no의 시퀀스값을 넣어 준다. DROP SEQUENCE no --시퀀스 no를 없앤다.
(
seq number,
TITLE VARCHAR2(100 BYTE),
CONTENT CLOB
)