이번 글은 감소 시퀀스(INCREMENT BY < 0) 상황에서 채번 값이 양수와 음수
범위에서 어떻게 변하는지 테스트 입니다.
감소 시퀀스 테스트
음수 상황(SEQ1): -1 -> -999로 감소
양수 상황(SEQ2): 999 -> 1로 감소
-- 시퀀스 현황 조회
SELECT * FROM DBA_SEQUENCES
WHERE 1=1
AND SEQUENCE_NAME IN ('SEQ1','SEQ2');
SEQUENCE_OWNER SEQUENCE_NAME MIN_VALUE MAX_VALUE INCREMENT_BY CYCLE_FLAG ORDER_FLAG CACHE_SIZE LAST_NUMBER
------------------------------ ------------------------------ ------------------ ------------------ ------------------------ -------------------- -------------------- -------------------- ----------------------
SYSTEM SEQ1 -999 -1 -1 N N 20 -1
SYSTEM SEQ2 1 999 -1 N N 20 999
2 rows selected.
-- 시퀀스 채번
SELECT SYSTEM.SEQ1.NEXTVAL SQ1_NEXT, SYSTEM.SEQ2.NEXTVAL SQ2_NEXT FROM DUAL;
SQ1_NEXT SQ2_NEXT
---------------- ----------------
-1 999
1 rows selected.
SELECT SYSTEM.SEQ1.CURRVAL SQ1_CUR, SYSTEM.SEQ2.CURRVAL SQ1_CUR FROM DUAL;
SQ1_CUR SQ1_CUR
-------------- --------------
-1 999
1 rows selected.
-- 시퀀스 현황 조회
SELECT * FROM DBA_SEQUENCES
WHERE 1=1
AND SEQUENCE_NAME IN ('SEQ1','SEQ2');
SEQUENCE_OWNER SEQUENCE_NAME MIN_VALUE MAX_VALUE INCREMENT_BY CYCLE_FLAG ORDER_FLAG CACHE_SIZE LAST_NUMBER
------------------------------ ------------------------------ ------------------ ------------------ ------------------------ -------------------- -------------------- -------------------- ----------------------
SYSTEM SEQ1 -999 -1 -1 N N 20 -21
SYSTEM SEQ2 1 999 -1 N N 20 979
2 rows selected.
-- 시퀀스 한번 더 채번
select SYSTEM.seq1.nextval sq1_next, SYSTEM.seq2.nextval sq2_next from dual;
SQ1_NEXT SQ2_NEXT
---------------- ----------------
-2 998
1 rows selected.
SELECT SYSTEM.SEQ1.CURRVAL SQ1_CUR, SYSTEM.SEQ2.CURRVAL SQ1_CUR FROM DUAL;
SQ1_CUR SQ1_CUR
-------------- --------------
-2 998
1 rows selected.
댓글 쓰기