본문 바로가기

Oracle/SQL

SQL - SEQUENCE 절대 중복되지않는 번호

사원번호, 계좌번호, 은행번호표 등 절대 중복되면 안되는 경우 시퀀스를 사용하고 
이렇게 생성된 sequence 는 index 가 자동 등록 된다. 

사람이 일일히 번호를 입력하지 않고 기계에게 밭겨 번호가 안전하게 입력할 수 있도록 한다.

시퀀스 생성 문법

create sequence seq1 
start with 1 
increment by 1
MAXVALUE 100;

→ start with 시작숫자
→ increment by 증가치
→ maxvalue 최대값
→ 최대값 넘어가면 오류뜬다~

시퀀스 삭제하기

drop sequence seq1;

내가만든 시퀀스 리스트 확인하기

select sequence_name
from user_sequences;

 

stock table 생성하기

create table stock
(stock_di number(10),
stock_type varchar2(20),
stock_time date);

seq2 생성 1 시작 1증가 최대 100000 까지

create sequence seq2
start with 1
increment by 1
maxvalue 100000;

stock 테이블에 데이터 입력하시오

insert into stock values ( seq2.nextval, '매도', sysdate);
insert into stock values ( seq2.nextval, '매수', sysdate);

 

 

 

seq3 생성하기  50 번 부터 시작하고 증가폭은 10 최대 번호는 200 번가지이다. 

create sequence seq3
start with 50
increment by 10
maxvalue 200;

 

 

dept 테이블의 deptno 컬럼에 seq 로 데이터 들어갈 수 있도록 입력하기 

insert into dept (deptno, dname, loc)
values (seq3.nextval, 'AS team' , 'SEOUL');

insert into dept (deptno, dname, loc)
values (seq3.nextval, 'AS2 team' , 'BUSAN');

SELECT * FROM DEPT;

제대로 들어갔다~