database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
PostgreSQL
Firebird
ㆍOracle
Informix
Sybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
Oracle Tutorials 11337 게시물 읽기
 News | Q&A | Columns | Tutorials | Devel | Files | Links
No. 11337
오라클 기본강좌(3)-시퀀스 생성, 수정, 삭제
작성자
정재익(advance)
작성일
2002-07-12 21:29
조회수
13,548

4. Sequence 생성, 수정, 삭제

가. Sequence 생성

지정된 수치로 증가하거나 감소하는 일종에 번호표이다. 또 최대 15개까지 만들 수 있으며 시작 값은 수정할 수 있다.)

CREATE SEQUENCE NAME

[INCREMENT BY n]

[START WITH n]

[{MAXVALUE n | NOMAXVALUE}]

[{MINVALUE n | NOMINVALUE}]

[{CYCLE | NOCYCLE}]

[{CACHE n | NOCACHE}]

 

 

※INCREMENT BY n은 sequence 번호간의 가격인 정수 n이며, 생략되면 sequence는 1씩 증가.

START WITH n은 생성되는 첫 번째 sequence 번호로 생략되면 시퀀스는 1씩 증가.

MAXVALUE n은 생성가능한 sequence의 최대값.

NOMAXVALUE는 기본 옵션으로 최대값은 1027

MINVALUE n은 생성가능한 sequence의 최소값(써주지 안으면 default 값인 38이 주어집니다.)

NOMINVALUE는 최소값 1.

CACHE n|NOCACHE는 Oracle Server가 미리 지정하고 메모리에 유지할 값의 수로 default값은 20입니다.

 

아래와 같이 실행하면 순서번호가 생성됩니다.

SQL> create sequence sim;

순서번호가 생성되었습니다.

SQL> create sequence member_no;

주문번호가 생성되었습니다.

SQL> select member_no.nextval, name, tel, code

2 from member;

NEXTVAL NAME TEL CODE

--------- ---------- --------------- ---------

1 이정석 324-7912 103

2 강호식 298-4871 104

3 이순민 392-9012 101

..............

18 장하림 348-3873 105

19 이길찬 876-7638 103

19 개의 행이 선택되었습니다.

 

30부터 시작해서 2씩 감소하는 범위가 최대값 70에서 최소값 -50까지에서 번호표를 생성한 다음 display합니다

SQL> create sequence member_no2 increment by -2 start with 30

2 maxvalue 70

3 minvalue -50;

주문번호가 생성되었습니다.

 

SQL> select member_no2.nextval, name, tel, addr

2 from member;

NEXTVAL NAME TEL ADDR

--------------- ---------------------------------

30 이정석 324-7912 서울 종로구 창신동 14-1

28 강호식 298-4871 서울 관악구 신림3동 45-2

26 이순민 392-9012 대전시 중구 무수동 301-2

............

0 임용순 345-3254 대전시 서구 관저동 원앙마을 349-23

-2 김영수 291-8374 충남 논산시 광석면 신당리 60

-4 장하림 348-3873 전남 여수시 노대면 오진리 29

-6 이길찬 876-7638 대구시 내동구 동내동 34-98

19 개의 행이 선택되었습니다.Sequence 수정

 

 

※Sequence에 대한 MAXVALUE 한계에 도달하면 sequence에 대한 추가적인 값이 할당되지 않게 되고 sequence를 계속 사용하려면 ALTER SEQUENCE 명령을 써서 수정 할 수 있습니다.

 

ALTER SEQUENCE NAME

[INCREMENT BY n]

[{MAXVALUE n | NOMAXVALUE}]

[{MINVALUE n | NOMINVALUE}]

[{CYCLE | NOCYCLE}]

[{CACHE n | NOCACHE}]

 

 

※자신의 sequence이거나 sequence에 대한 ALTER 권한을 가져야만 sequence를 수정할 수 있다.

아직 생성되지 않은 sequence값만이 ALTER SEQUENCE 명령에 영향받음.

유효성 검사를 하게 됩니다. 예를 들어, 새로운 MAXVALUE는 현재의 sequence값보다 작지 않아야 한다.

START WITH 옵션은 ALTER SEQUENCE를 써서 변경할 수 없습니다. 다른 번호에서 다시 시작하려면 이전 sequence를 삭제하고 다시 생성해야 한다.

 

나. Sequence 삭제

Sequence를 삭제하려면 DROP SEQUENCE 명령을 사용하십시오. Sequence를 제거 할 DROP ANY SEQUENCE 권한을 가지고 있거나 그 sequence의 소유자이어야 합니다.

DROP SEQUENCE 시퀀스 이름;

 

SQL> drop sequence member_no;

주문번호가 삭제되었습니다.

[Top]
No.
제목
작성자
작성일
조회
11340오라클의 기본강좌(6)-사용자 및 권한관리
정재익
2002-07-12
14217
11339오라클 기본강좌(5)-인덱스
정재익
2002-07-12
10822
11338오라클 기본강좌(4)-VIEW 의 생성, 삭제
정재익
2002-07-12
10029
11337오라클 기본강좌(3)-시퀀스 생성, 수정, 삭제
정재익
2002-07-12
13548
11336오라클 기본강좌(3)-함수
정재익
2002-07-12
17009
11335오라클 기본강좌(2)-SELECT
정재익
2002-07-12
12468
11334오라클 기본강좌(1)-테이블 관리
정재익
2002-07-12
22171
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2023 DSN, All rights reserved.
작업시간: 0.048초, 이곳 서비스는
	PostgreSQL v16.1로 자료를 관리합니다