자동증가(Create sequence) NEXTVAL 과 CURRVAL > 기술자료 | 해피정닷컴

자동증가(Create sequence) NEXTVAL 과 CURRVAL > 기술자료

본문 바로가기

사이트 내 전체검색

자동증가(Create sequence) NEXTVAL 과 CURRVAL > 기술자료

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

페이지 정보


본문

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 2,634건 57 페이지
  • RSS
기술자료 목록
1514
일반   16852  2014-01-28 13:19  
1513
일반   17588  2014-01-27 13:37  
1512
PHP   14917  2014-01-26 21:07 ~ 2014-01-27 00:00  
1511
그누보드   14407  2014-01-23 21:16  
1510
Editor   19371  2014-01-21 04:09  
1509
킴스큐   45454  2014-01-17 16:59  
1508
Adobe   39404  2014-01-16 21:25  
1507
일반   14032  2014-01-15 22:21  
열람
Oracle   20535  2014-01-10 15:52  
1505
Oracle   16303  2014-01-09 06:01  
1504
Oracle   18779  2014-01-09 01:20  
1503
Oracle   45640  2014-01-09 01:13  
1502
Oracle   14181  2014-01-08 23:43  
1501
호스팅   13627  2014-01-06 13:49  
1500
그누보드   13118  2013-12-26 19:24  
1499
Oracle   25243  2013-12-25 23:39  
1498
Oracle   37236  2013-12-11 01:59  
1497
Oracle   41255  2013-09-25 15:08  
1496
Oracle   21243  2013-09-30 00:48  
1495
Oracle   24546  2013-10-06 04:24  

검색

해피정닷컴 정보

회사소개 회사연혁 협력사 오시는길 서비스 이용약관 개인정보 처리방침

회사명: 해피정닷컴   대표: 정창용   전화: 070-7600-3500   팩스: 042-670-8272
주소: (34368) 대전시 대덕구 대화로 160 대전산업용재유통단지 1동 222호
개인정보보호책임자: 정창용   사업자번호: 119-05-36414
통신판매업신고: 제2024-대전대덕-0405호 [사업자등록확인]  
Copyright 2001~2024 해피정닷컴. All Rights Reserved.