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
운영게시판
최근게시물
DBMS Q&A 1005 게시물 읽기
No. 1005
sequence.nextval에 대해서 질문입니다.
작성자
명성태(taitai09)
작성일
2004-08-07 09:54ⓒ
2004-08-07 09:55ⓜ
조회수
12,907

연속해서 질문을 던지게 되는군요.

DB는 개발자분들께선 아직 생소한 DB입니다. postgreSQL도 아니구요.

seq.currval, seq.nextval에 대해서 질문입니다.

어제 오라클 바이블을 보다보니 오라클은 seq값을 가져올 때 참조한다라고 되어라구요.

그러다면 seq.currval는 참조해서 현재값을 가져오게 되는 거고, seq.nextval는 참조해서 현재값의 그 다음 값을 가져오게 되게 되는거라 생각됩니다.

제가 궁금해 하는 것은 현장에서 부딧친 문제를 올려봅니다.

예입니다.

insert into A_tab (req_no, req_seqno)

values (seq01.nextval,

to_char(SYSDATE, 'yyyymmdd')||seq01.nextval);

이렇게 이루어 sql문이 있고, 현재의 seq_no은 3이라고 가정합니다.

저렇게 첫 칼럼에서 nextval가 이루어지면 req_no에는 4가 붙게 될 것이고,

두번째 칼럼에선 nextval가 이미 한 번 이루어졌기에 req_seqno에는 5가 붙게 되는 거라고 전 생각합니다.

제가 잘못 알고 있는건가요?

sequence도 DB 엔진마다 nextval의 사용이 틀린지 알고 싶습니다.

이 글에 대한 댓글이 총 2건 있습니다.

어떤 DBMS를 쓰시는지는 모르겠지만..

적어도 postgresql에서는 님의 말씀대로 동작합니다.

시퀀스에 대한 특별한 정해진 표준이 있는지 모르겠습니다. 특별히 정해진 표준이 없다면 각각 DBMS의 쿼리 처리 순서나 쿼리 플랜에 따라 동작하리라고 생각합니다. 그래서 적어도 pgsql에서는 그렇게 동작하지만 다른 DBMS에서는 어떻게 동작할지는 100% 장담할 수 없다는 말씀밖에는..

신기배(nonun)님이 2004-08-07 10:26에 작성한 댓글입니다.

pgsql에선 제가 생각했던대로 이루어지는 군요.

위에 것을 oracle에서 처리를 하니 req_no=4, req_seqno=4로 등록이 되더라구요.

oracle sql문을 저희 회사에서 만든 작은 디비에다 포팅을 하니 원문에 생각한데로 처리가 더라구요. req_no=4, req_seqno=5

제가 짧은 생각으로 sequence 처리 또는 sequence 참조 방법이나 신기배님이 생각하시는 거처럼 각각의 DBMS의 쿼리 처리 순서나 쿼리 플랜에 따라 동작이 달리 이루어지는 거 같습니다.

명성태(taitai09)님이 2004-08-07 10:59에 작성한 댓글입니다.
이 댓글은 2004-08-07 11:02에 마지막으로 수정되었습니다.
[Top]
No.
제목
작성자
작성일
조회
1010DB 종류(발전사)? 궁금!! [1]
미희
2004-09-02
13870
1007궁금해서 물어보아요~ [3]
고재규
2004-08-23
12051
1006mdb 기본키에 대해서 [2]
김병희
2004-08-11
11093
1005sequence.nextval에 대해서 질문입니다. [2]
명성태
2004-08-07
12907
1004sequence의 현재 값을 볼 순 없나요? [3]
명성태
2004-08-06
13120
1003[질문]primary key 를 지정할때요... null 입력할때 일정숫자 이상으로 들어가게..하는법쫌.. [1]
창진
2004-08-05
10165
1002IBM이 Cloudscape를 apache에 기증했는데...
박성철
2004-08-05
11173
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2023 DSN, All rights reserved.
작업시간: 0.050초, 이곳 서비스는
	PostgreSQL v16.1로 자료를 관리합니다