메뉴 건너뛰기

조회 수 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
번호 제목 날짜 조회 수
61 IMP-00010: 엑스포트 파일이 유효하지 않고, 헤더가 검증에 실패했습니다 file 2016.12.08 8812
60 sqlplus에서 Ampersand나 특수 문자를 갖는 데이타를 insert하는 방법 sqlplus 데이터 insert 입력값 요구 2016.12.08 8912
59 시퀀스 초기화 프로시저 2016.09.12 8925
58 오라클 12c (Oracle) 에서 테스트를 위해 샘플 스키마 설치하기 file 2016.08.30 8929
57 Oracle 에서 테이블과 리소스의 존재 여부를 알아보는 쿼리 file 2016.08.30 8949
56 ORA-39142 덤프 버전이 틀려서 넣지 못할 때 2016.12.08 8973
55 oracle 특수문자 입력시 Substitution Variable 변수치환을 없애는 방법 file 2016.08.30 9025
54 [Oracle|오라클] 한글 초성 검색 함수 2016.12.08 9089
53 Oracle에서 Foreign Key가 걸려있는 컬럼값 업데이트(update) 하기 file 2016.08.29 9172
52 ORA-01652 128(으)로 테이블 공간 ***에서 임시 세그먼트를 확장할 수 없습니다. file 2016.12.08 9257
51 WHERE절에서 Null 값 비교하기 file 2016.08.29 9354
50 PL/SQL에서 자바(Java) 클래스(Class), 함수 실행 방법 file 2016.12.08 9387
49 단일행을 다중 row로 분리, 다중 row 결과를 단일행으로 연결하는 방법 2016.08.29 9403
48 간단한 쿼리로 일련번호 쉽게 넣기 - ROWNUM 사용 file 2016.08.29 9472
47 다른 버전의 오라클 import, export 하기 file 2016.09.12 9475
46 조건절에 WHERE 1=1, WHERE 1=0 사용하여 쿼리 간편하게 사용하기 file 2016.08.29 9617
45 oracle db 백업(full) 2016.09.11 9663
44 오라클11g DB 생성 file 2016.12.08 9727
43 오라클 백업 및 복구(Export, Import) file 2016.12.08 9762
42 데이터베이스 백업하기 ( import : 가져오기 , export : 내보내기 ) file 2016.12.08 9887
Board Pagination Prev 1 2 3 4 5 6 7 Next
/ 7

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

© k2s0o1d4e0s2i1g5n. All Rights Reserved