메뉴 건너뛰기

조회 수 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 를 누르면 된다.

  1. No Image 29Aug
    by
    2016/08/29 Views 8145 

    Oracle에서 중복 조인을 피하기 위한 Update 방법 (MERGE 사용)

  2. Oracle에서 세자리 콤마 찍기

  3. Oracle에서 사용자가 생성한 모든 Table, View를 삭제하는 쿼리 만들기

  4. Oracle에서 ORA-28000: 계정이 잠금되었습니다. - 해결 방법

  5. Oracle에서 Foreign Key가 걸려있는 컬럼값 업데이트(update) 하기

  6. oracle 특수문자 입력시 Substitution Variable 변수치환을 없애는 방법

  7. No Image 29Aug
    by
    2016/08/29 Views 7140 

    Oracle 저장 프로시저 샘플

  8. Oracle 에서 테이블과 리소스의 존재 여부를 알아보는 쿼리

  9. No Image 30Aug
    by
    2016/08/30 Views 8335 

    Oracle 에서 NVL, NVL2 함수 사용하는 예제

  10. No Image 08Dec
    by
    2016/12/08 Views 7023 

    oracle 에서 Index를 이용해서 즉 힌트와 rownum을 이용하여 게시판 작성하기

  11. Oracle 시퀀스 생성, 추가, 삭제

  12. No Image 11Sep
    by
    2016/09/11 Views 8526 

    oracle 구동 방법 및 재부팅 시 oracle 자동 시작 설정 ( /etc/rc.local )

  13. Oracle XDB 리스너 포트 바꾸기

  14. No Image 11Sep
    by
    2016/09/11 Views 8013 

    oracle user 관리

  15. Oracle SQL Developer 도구 활용하기 - Part2

  16. Oracle SQL Developer 도구 활용하기 - Part1

  17. No Image 11Sep
    by
    2016/09/11 Views 10650 

    oracle log 보기 - alert, trace

  18. No Image 11Sep
    by
    2016/09/11 Views 7492 

    oracle listener 로그 형식 - oracle 11g 이전 versioin의 형식으로 변경

  19. Oracle DBMS_CRYPTO 사용하기 - 암복호화 하기

  20. Oracle DB 에서 Toad 를 사용하여 Procedure 디버깅 하기

Board Pagination Prev 1 2 3 4 5 6 7 Next
/ 7

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

© k2s0o1d4e0s2i1g5n. All Rights Reserved