10 열 - col1, col2, col3 .... col10이있는 Oracle 테이블이 있습니다. 내 요구 사항은 - col1, col2, col3 즉, (col1, col2, col3)의 고유 한 값 집합에 대해 col4의 고유 값은 여러 번이라도 허용됩니다. 예 : col1 = 3, col2 = 'A005'및 col3 = 10 인 10 개의 행이있는 경우 모든 10 개의 행에 대해 col4의 값이 동일해야합니다.데이터베이스 제약 조건에 대한 쿼리
어떻게 Oracle에서이 제한 사항을 적용 할 수 있습니까?
제 요구 사항이 혼란스럽지 않기를 바랍니다. 내가 다시 분명히하자. (col1, col2, col3, col4) 집합에 대한 여러 항목이 허용됩니다. 그러나 (col1, col2, col3)의 집합에 대해서 col4의 값은 하나만 허용됩니다. 별개의 값을 가진 삽입은 오류가 발생합니다. 현재 col1 = 3이고 col2 = 'A005'이고 col3 = 10 인 행이 없다고 가정합시다. 삽입은 위의 값과 col4 = 234로 수행됩니다. col1 = 3, col2 = 'A005'및 col3 = 10 인 후속 삽입은 col4 = 234 만 가져야합니다. col4의 다른 값은 허용되지 않습니다. –
내 이해를 확인하자 : col1, col2 및 col3이 동일 할 때마다 col4도 동일해야합니다. 따라서 별도의 행을 허용 할지라도 col4의 동일한 값을 반복하기를 원하십니까? –
만약 그렇다면 요점은 이것이 일반적인 나쁜 습관처럼 보입니다. 그리고 그것을 해결하는 일반적인 방법은 col4를 별도의 테이블로 제거하는 것입니다. 여기서 우리는 중복 값을 피할 수 있습니다. 중복 값은 글을 읽을 때, 쓰는 중, 수정할 때 문제를 일으 킵니다 ...이 모범 사례 '표준화'에 대한 자세한 내용은 여기에 있습니다 : http://stackoverflow.com/questions/2331838/normalization-in-plain-english –