연속해서 질문을 던지게 되는군요.
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의 사용이 틀린지 알고 싶습니다. |