자동증가(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 36건 1 페이지
  • RSS
기술자료 목록
36
Oracle   4878  2021-12-08 18:49 ~ 2021-12-08 19:30  
35
Oracle   5089  2021-12-02 08:59 ~ 2021-12-02 14:59  
34
Oracle   18667  2017-04-27 01:54  
33
Oracle   15224  2017-04-01 23:05  
32
Oracle   35675  2016-02-03 21:19  
31
Oracle   28388  2016-02-03 20:40 ~ 2016-02-16 00:00  
30
Oracle   18941  2016-01-22 14:19  
29
Oracle   13945  2015-02-26 23:13  
열람
Oracle   20502  2014-01-10 15:52  
27
Oracle   16274  2014-01-09 06:01  
26
Oracle   18729  2014-01-09 01:20  
25
Oracle   45592  2014-01-09 01:13  
24
Oracle   14166  2014-01-08 23:43  
23
Oracle   25217  2013-12-25 23:39  
22
Oracle   37191  2013-12-11 01:59  
21
Oracle   41191  2013-09-25 15:08  
20
Oracle   21191  2013-09-30 00:48  
19
Oracle   24523  2013-10-06 04:24  
18
Oracle   15970  2013-10-07 06:40  
17
Oracle   16369  2013-10-06 05:45  

검색

해피정닷컴 정보

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

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