안녕하세요 ^^
또 질문을 하나 올리게되었네요.
얼마전 질문을 드려 좋은 답변들을 주셔서
Merge into를 활용해서 쿼리 작동확인 후 테스트를 해보다가 확인된 사항입니다.
MERGE INTO TABLE1
USING DUAL
ON (TEST = v_val1 AND TEST2 = v_val2)
WHEN NOT MATCHED
INSERT ( ID, TEST. TEST2)
VALUES (SEQ_ID.NEXTVAL, v_val1, v_val2);
이렇게 동일한조건의 값이 없다면 insert 하도록 설정되어있는데
이미 동일한 데이터가 존재하고 있어서, 데이터는 입력되지도 않았는데도
시퀀스는 값이 증가하더라구요.
DBMS_OUTPUT.PUT_LINE(SEQ_ID.CURRVAL); 할때마다 시퀀스값이 1 씩늘어나 있습니다.
원래 이런건가요 ? ..
이렇게되면 SEQ를 주는 부분이 조금 의미가 없는것같기도하고 ...
제약을 주거나, SEQ 대신 쓸 수있는 항목이나 값이 따로 있을까요 ??