메뉴 건너뛰기

조회 수 8151 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄 첨부
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄 첨부
Oracle 시퀀스 생성, 추가, 삭제
시퀀스란 ?
◈ 지정된 수치로 증가하거나 감소시키는 일종의 번호표, 최대 15개까지 생성가능하며
   시작값은 수정할수 없고 새로 생성해야한다.
◈ 유일(UNIQUE)한 값을 생성해주는 오라클 객체입니다.
◈ 시퀀스를 생성하면 기본키와 같이 순차적으로 증가하는 컬럼을 자동적으로 생성할수 있습니다.
◈ 보통 primary key 값을 생성하기 위해 사용합니다.
◈ 메모리에 Cache되었을 때 Sequence 값의 액세스 효율이 증가 합니다.
◈ Sequence는 테이블과는 독립적으로 저장되고 생성됩니다. 따라서 하나의 sequence를
   여러 테이블에서 쓸 수 있습니다.

- 시퀀스 생성 문법
CREATE SEQUENCE sequence_name
       [INCREMENT BY n1]
       [START WITH n2]
       [MAXVALUE n3 or NOMAXVALUE]
       [MINVALUE n4 or NOMINVALUE]
       [CYCLE or NOCYCLE]
       [CACHE or NOCACHE];

sequence_name : 생성하고자 하는 시퀀스 명
INCREMENT BY n1 : 해당 시퀀스의 증가값을 지정한다. 생략하면 1로 지정됨.
오름차순 : 양의 정수, 내림차순 : 음의정수 사용
START WITH n2 : 해당 시쿼스가 처음 시작하는 값을 지정한다. 생략하면 1로 지정됨.
MAXVALUE n3 : 해당 시퀀스가 생성할 수 있는 최대값,
NOMAXVALUE : 오름차순 최대 10의 27승 까지, 내림차순 -1 까지 생성됨.
MINVALUE n4 : 해당 시퀀스가 생성할 수 있는 최소값
NOMINVALUE : 오름차순 1 까지, 내림차순 -10의 26승 까지
CYCLE : 해당 시퀀스가 최대값에 도달한 후 다시 처음부터 시퀀스를 생성한다.
NOCYCLE : 해당 시퀀스가 최대값에 도달해도 다시 생성하지 않는다.[DEFAULT]
CACHE : 시퀀스 값을 메모리에 할당하여 처리한다. [ORACLE DEFAULT 20]
NOCACHE : 시퀀스를 메모리에 할당하여 사용하지 않음.

예1) CREATE SEQUENCE temp_seq
           INCREMENT BY 2
           START WITH   1
           MAXVALUE 100
           NOCYCLE
           NOCACHE;

temp_seq하는 시퀀스를 생성한다.
초기값은 1부터 시작하며 2씩 증가하고 100이 되거나 100에 가장 근접한 값을 가지게 되면
종료된다.(NOCYCLE 지정에 의해)
NOCHCHE지정으로 메모리에 CACHE하지는 않는다.

결과) 1 3 5 7 9 ..... 99

예2) CREATE SEQUENCE temp_seq
           INCREMENT BY -1
           START WITH   100
           MAXVALUE 100

           MINVALUE 0
           NOCYCLE
           NOCACHE;

temp_seq하는 시퀀스를 생성한다.
초기값은 100부터 시작하며 1씩 감소하고 0이 되면 종료된다.
NOCHCHE지정으로 메모리에 CACHE하지는 않는다.

결과) 100, 99, 98, 97, 96 ... 0

- 시퀀스 수정
ALTER SEQUENCE 수정할 시퀀스 이름
    [INCREMENT BY n1]
    [MAXVALUE n3 or NOMAXVALUE]
    [MINVALUE n4 or NOMINVALUE]
    [CYCLE or NOCYCLE]
    [CACHE or NOCACHE];

자신의 sequence 이거나 sequence 에 대한 ALTER 권한을 가져야만 sequence 를 수정할수 있다.
아직 생성하지 않은 sequence 값만이 ALTER SEQUENCE 명령에 영향을 받는다.
그리고 유효성 검사를 하게 되는데 예를 들어 새로운 MAXVALUE 는 현재의 sequence 값보다
작지 않아야 한다.
생성할 때 썻던 START WITH 옵션은 ALTER SEQUENCE 를 써서 변경할수 없다. 다른 번호에서
다시 시작할려면 이전 sequence 를 삭제하고 다시 생성해야한다.

- 시퀀스 삭제
DROP SEQUENCE 삭제할시퀀스이름 :

TOAD 에서 실습을 해보도록 한다.
TOAD 버전은 9.7 이다.
Database > Create > Sequence 메뉴로 들어간다.

다른 방법은 Schema Browser 아이콘을 클릭해서 아래그림과 같이 두번째 리스트 항목중 sequence 를
선택하게 되면 현재 생성된 것들과 새로 생성할수 있는 메뉴들을 제공한다.
 

아래 새로 생성 아이콘을 클릭하게 되면 sequence 생성을 위한 창이 나온다.
 

아래와 같이 생성된 목록을 볼수 있다

증가값이나 MAX 값을 수정하고 싶을때는 오른쪽 마우스를 클릭하여 Alter sequence 를 선택한후
수정값을 입력하고 execute 를 누르면 된다.

List of Articles
번호 제목 날짜 조회 수
41 Oracle에서 중복 조인을 피하기 위한 Update 방법 (MERGE 사용) 2016.08.29 8145
40 Oracle에서 세자리 콤마 찍기 file 2016.08.29 11720
39 Oracle에서 사용자가 생성한 모든 Table, View를 삭제하는 쿼리 만들기 file 2016.08.29 7464
38 Oracle에서 ORA-28000: 계정이 잠금되었습니다. - 해결 방법 file 2016.08.29 7323
37 Oracle에서 Foreign Key가 걸려있는 컬럼값 업데이트(update) 하기 file 2016.08.29 9169
36 oracle 특수문자 입력시 Substitution Variable 변수치환을 없애는 방법 file 2016.08.30 9025
35 Oracle 저장 프로시저 샘플 2016.08.29 7140
34 Oracle 에서 테이블과 리소스의 존재 여부를 알아보는 쿼리 file 2016.08.30 8949
33 Oracle 에서 NVL, NVL2 함수 사용하는 예제 2016.08.30 8335
32 oracle 에서 Index를 이용해서 즉 힌트와 rownum을 이용하여 게시판 작성하기 2016.12.08 7023
» Oracle 시퀀스 생성, 추가, 삭제 file 2016.08.30 8151
30 oracle 구동 방법 및 재부팅 시 oracle 자동 시작 설정 ( /etc/rc.local ) 2016.09.11 8526
29 Oracle XDB 리스너 포트 바꾸기 file 2016.08.30 7938
28 oracle user 관리 2016.09.11 8014
27 Oracle SQL Developer 도구 활용하기 - Part2 file 2016.12.08 11317
26 Oracle SQL Developer 도구 활용하기 - Part1 file 2016.12.08 11740
25 oracle log 보기 - alert, trace 2016.09.11 10650
24 oracle listener 로그 형식 - oracle 11g 이전 versioin의 형식으로 변경 2016.09.11 7492
23 Oracle DBMS_CRYPTO 사용하기 - 암복호화 하기 file 2016.12.08 11609
22 Oracle DB 에서 Toad 를 사용하여 Procedure 디버깅 하기 file 2016.08.30 11426
Board Pagination Prev 1 2 3 4 5 6 7 Next
/ 7

하단 정보를 입력할 수 있습니다

© k2s0o1d4e0s2i1g5n. All Rights Reserved