반응형

기존 테이블에 기존 값들이 잘 들어 가고 있다.

새로운 데이터들이 INSERT된다. 새로운 데이터는 기존 테이블에 잘 들어가리라 생각했는데 그렇지 않았다.

기존 테이블 기본키값으로 인해서 기본키 오류가 발생하였다.

키값이 모두 일치하고 또 다른 경우의 컬럼의 속성이 다른 경우의 데이터가 존재하는 경우다.

새로운 속성의 컬럼 값은 유니크하다.

더군다나 속성이 다른 컬림은 기존 테이블에 INSERT가 되지 않는다.


해결책을 생각해본다.

오라클은 기본키를 잡게 되면 자동으로 인덱스로 잡힌다.

테이블의 데이터가 적은 양은 아니어서 인덱스는 잡아야 되는 상황이다.


1. 기존 테이블의 기본키 값을 풀어주고 인덱스만을 잡아준다. 그렇다면 위와 같은 데이터가 들어 올 시 데이터 구분이 안된다.


2. 기본키를 풀어 주고 새로운 컬럼을 추가하여 유니크 인덱스를 잡아준다. 그렇다면 기존 데이터는 추가한 컬럼에 널값이 들어 간다. 

기본키 위배되는 값은 기존 데이터에는 존재하지 않는다.


3. 이 테이블에 반드시 값을 INSERT해야되는가를 고려해본다. 값을 넣어야 된다...


4. 전용 테이블을 만들어 준다. 앞으로 관리되는 테이블 갯수의 증가와 테이블 생성이 반드시 필요한건가 고려해본다.

어쨌든 테이블을 새로 생성하든 컬럼을 추가 하든 어드민은 영향범위에 포함이 된다.


5. 새로운 속성의 데이터를 기존 테이블 컬럼에 넣어준다. 그리고 기본키 위배가 걸린 값을 새로운 컬럼을 생성하여 insert 해준다.

새로운 속성의 값이 유니크 하기때문에 기본키 위배 없이 수행이 된다.

새로운 속성의 데이터 로우값의 구분은 확실히 할 수 있다. 그렇기 때문에 구분 값을 보고 필요에 따른 컬럼을 사용해주자.


결국에는 5번을 선택 하였는데 시간과 하는 업무의 크기를 보고 테이블을 별도로 생성하는 방법도 좋은 방법이라 생각이 된다.

반응형

+ Recent posts