자동증가(Create sequence) NEXTVAL 과 CURRVAL > 온라인강의

본문 바로가기
 
 
 
오늘 2,211
어제 2,156
최대 2,454
전체 3,133,350
비즈니스의 시작 비즈명함 ~ 가격, 품질, 배송 3가지 만족을 드리는 비즈명함 / 즉석명함 / 급행서비스 / 서울 전지역 수도권일부 3시간배송

온라인강좌 홈 > 온라인강좌 > 온라인강좌

Oracle | 자동증가(Create sequence) NEXTVAL 과 CURRVAL

페이지 정보

작성일2014-01-10 15:52 조회5,463회 댓글0건

본문

Sequence란
유일한 값을 순차적이면서 연속적으로 만들어주기 위해서 사용되는 객체


Sequence기능?

1. 자동적으로 유일번호 생성
2. 공유가능하고 독립된 객체(여러 table에 사용 가능)
3. 주로 기본키값을 생성하기 위해 사용
4. 메모리에 캐쉬되면 시퀀스 값을 액세스하는 효율성을 향상시킴
   장점 : 메모리에서 시퀀스 값을 캐쉬하면 이값에 대해 더 빠른 액세스를 할수 있습니다.
   단점 : 시퀀스 값들이 순차적으로 안들어간다. 예를들어 1,2,3,5,7과 값이 gap(간격)이 생긴다


시퀀스에 gap이 생기는경우

1. rollback발생
2. system실패
3. 시퀀스가 다른 테이블에서 사용될때


다른 DBMS와의 차이

mysql(auto_increment)에서나 mssql(identity)에서는 해당 int형 컬럼에 순차적으로 자동으로 값(일련번호)이 부여해주는 기능이 있습니다.
이값은 1,2,3,4,순으로 순차적으로 자동으로 dbms가 계산하여 출력시켜주는데 게시판이나 primary key에 보통 많이 넣어 순서번호로 사용합니다.

oracle에서도 이런 자동 증가 번호 기능이 있습니다. 이기능을 SEQUENCE 라고 합니다.
먼저 SEQUENCE 을 사용하기 위해서는 SEQUENCE를 선언하고 사용하면 됩니다.
물론 하나의 게시판에 하나의 SEQUENCE을 사용하므로 사용할 갯수만큼 SEQUENCE을 만들어야 합니다.


SEQUENCE 선언하기

문법
CREATE SEQUENCE 시퀀스이름 START WITH 1 INCREMENT BY 증가숫자 MAXVALUE 최대값  nocycle cache 20;
- 시퀀스이름 SEQUENCE명입니다. START WITH는 시작 번호 INCREMENT는 증가 번호입니다.
- MAXVALUE는 최대 시퀀스 값입니다. 최대값까지 가면 처리가 안되고 에러가 납니다.
- MAXVALUE는 생략시 10의 27승까지 가능하다.
- cycle는 최대값까지 간다음에 다시 start with부터 시작하지만 nocycle는 최대값을 간후에 멈춘다.
- cache는 메모리에 캐쉬하여 사용한다. nocache는 메모리에 캐쉬하여 사용안한다.


Classic ASP 에서의 사용예
<%
strSql = "INSERT INTO aaa (IDX, COMPANY, TEL) "
strSql = strSql & " VALUES ( SEQUENCE_aaa.NEXTVAL , '" & COMPANY & "' , '" & TEL& "' ) "
conn.Execute(strSql)
%>


관련자료
http://annehouse.tistory.com/163
http://blog.naver.com/jjongs23/70058682016
http://www.zetswing.com/bbs/board.php?bo_table=ORACLE_TIP&wr_id=30
http://gilnet.tistory.com/entry/Sequences-NextVal과-Currval
http://lachesis76.egloos.com/viewer/400806
  • 페이스북으로 보내기
  • 트위터로 보내기
  • 구글플러스로 보내기

댓글목록

등록된 댓글이 없습니다.


목록

Total 32건 1 페이지
온라인강의 목록
번호 제목
32
31
30
29
Oracle [ClassASP] 연동하기 (write.2015-02-26)인기글  Hit.2834
열람중
27
Oracle 컬럼 추가와 디폴트값 (write.2014-01-09)인기글  Hit.4128
26
Oracle PK(primary key) 추가/삭제 (write.2014-01-09)인기글  Hit.4517
25
Oracle 에러 메세지 정리 (write.2014-01-09)인기글  Hit.11090
24
Oracle 테이블 복사/백업 (write.2014-01-08)인기글  Hit.3499
23
22
21
20
19
Oracle 조인및 서브쿼리 (write.2013-10-06)인기글  Hit.4580
18
Oracle VIEW 퀴리 생성 및 사용하기 (write.2013-10-07)인기글  Hit.3589
17
Oracle TOP 10개만 가져오는 쿼리문 (write.2013-10-06)인기글  Hit.3759
16
15
14
Oracle Dual 테이블, from dual 이란? (write.2013-11-07)인기글  Hit.3620
13
Oracle PK와 유니크 인덱스의 차이점 (write.2013-10-25)인기글  Hit.4686
12
11
10
Oracle 버퍼캐쉬 비우기 (write.2013-10-24)인기글  Hit.3522
9
Oracle LIKE 연산자 (write.2013-10-06)인기글  Hit.2994
8
Oracle Oracle Sql Develper 툴 설치하기 (update.2015-06-26)인기글  Hit.5560
게시물 검색
 
 
상호: 해피정닷컴 대표:정창용 사업자등록번호:119-05-36414 (08394) 서울시 구로구 디지털로 242 한화비즈메트로1차 1502호
전화: 070-7600-3500 팩스:02-865-3528 개인정보관리:정창용 mail@happyjung.com 에스크로확인
개인정보취급방침
COPYRIGHT 2001~2017 해피정닷컴. All rights reserved. 부가통신사업신고:서울체신청-1217 통신판매신고:2014-서울구로-0074
 
모바일 버전으로 보기