안녕하세요.
제가 운영하는 시스템에서 기존 NVL(MAX(SEQ), 0) + 1 생성하던 Sequence 에 무결성 오류 이슈가 생겨
Sequence 객체를 따로 생성하여 NEXTVAL 로 증가시킬려고 했는데 문제가 생겨서 문의 드립니다~
기존에 Insert 하던 테이블의 PK가 CITY, SEQ 2개로
CITY | SEQ |
---|---|
seoul | 1 |
seoul | 2 |
seoul | 3 |
Busan | 1 |
Busan | 2 |
Incheon | 1 |
Incheon | 2 |
INSERT INTO TABLE1 (CITY, SEQ) VALUES ( ?, (SELECT NVL(MAX(SEQ), 0) +1 FROM TABLE1 WHERE CITY = ? ))
이런 방법으로 증가 시켰던걸
INSERT INTO TABLE1 (CITY, SEQ) VALUES ( ?, SEQ.NEXTVAL)
로 변경할려고 했는데 생각해보니 위 방법으로는 저렇게 데이터가 생성되지 않을거 같아서요..
혹시 CITY 컬럼 데이터 별 그룹 순번으로 SEQ를 생성할 수 있는 방법이 있을까요?
고수님들의 조언 부탁드려요~~