메뉴 건너뛰기

조회 수 8152 추천 수 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 UNION ALL 과 ORDER BY 섞어서 쓰기 2016.08.30 9899
40 오라클 웹로직 12.1.3 설치 방법 file 2016.09.21 9902
39 오라클 DB 백업과 복원 2016.12.08 9926
38 rownum 사용 - 최근글 몇개만 가져오기 2016.12.08 9989
37 스키마 조회 쿼리 모음 2016.09.12 10037
36 Toad 사용시 캐릭터 인코더 UTF-8 로 변경하기 file 2016.08.30 10086
35 oracle 10g - log, trc 관리 정책 스크립트 2016.09.11 10098
34 [Oracle] Rownum을 이용한 페이징 처리 2016.12.08 10385
33 oracle log 보기 - alert, trace 2016.09.11 10650
32 [Oracle 12g] 설치 후 오라클 관리자 계정 접속하기 file 2016.12.08 10721
31 CentOS 6.5 에 Oracle Database 11g Release 2 설치하기 file 2016.12.08 10855
30 오라클 인스턴스 클라이언트(oracle instant client) 2016.09.12 10980
29 SQL 쿼리문 보기 좋게 정렬해주는 사이트 - Instant SQL Formatter file 2016.08.29 10998
28 실수로 지운 데이터 복구 쿼리 (TIMESTAMP) 2016.12.08 11166
27 Oracle SQL Developer 도구 활용하기 - Part2 file 2016.12.08 11317
26 Oracle DB 에서 Toad 를 사용하여 Procedure 디버깅 하기 file 2016.08.30 11429
25 Oracle DBMS_CRYPTO 사용하기 - 암복호화 하기 file 2016.12.08 11611
24 Oracle에서 세자리 콤마 찍기 file 2016.08.29 11720
23 Oracle SQL Developer 도구 활용하기 - Part1 file 2016.12.08 11743
22 ROLLUP 합계, 소계 구하기 (GROUP BY) file 2016.12.08 11869
Board Pagination Prev 1 2 3 4 5 6 7 Next
/ 7

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

© k2s0o1d4e0s2i1g5n. All Rights Reserved