열을 결합하여 고유 키를 생성하는지 여부를 확인하는 쿼리
Oracle에서 테이블에 있는 세 개의 열 집합이 고유한 키를 구성하고 1:1 관계에서 사용할 수 있는지 확인하려고 합니다.
이 쿼리를 실행할 때 키가 고유한 조합이면count
> 1, 맞습니까?
select count(*) from my_table t
group by t.a, t.b, t.c
이러한 결정을 내릴 수 있는 더 나은/대체 방법이 있습니까?
사용HAVING
중복 항목을 쉽게 식별할 수 있는 절입니다.
select t.a, t.b, t.c, count(1)
from my_table t
group by t.a, t.b, t.c
having count(1) > 1;
테이블에 상당한 양의 데이터가 있는 경우에는 보다 쉽게 수행할 수 있습니다.
SELECT t.a, t.b, t.c, count(*)
FROM my_table t
GROUP BY t.a, t.b, t.c
HAVING COUNT(*) > 1
이 쿼리가 0개의 행을 반환하는 경우 세 개의 열은 (현재) 고유합니다.해당 쿼리가 하나 이상의 행을 반환하는 경우 중복되는 값을 알 수 있습니다.
물론 세 개의 열이 현재 고유하다는 것을 알게 되면 이러한 사실을 활용하려는 경우 고유한 제약 조건을 생성하고자 할 것입니다.
언급URL : https://stackoverflow.com/questions/10837396/query-to-determine-if-columns-combine-to-create-a-unique-key
'programing' 카테고리의 다른 글
관계형 데이터베이스에서 성능 문제를 어떻게 설명합니까? (0) | 2023.07.21 |
---|---|
레이블로 선택한 판다는 때때로 Series를 반환하고 DataFrame을 반환합니다. (0) | 2023.07.21 |
win10 wsl unbuntu에서 오라클 인스턴트 클라이언트 11.2를 사용하는 DBD-Oracle(1.74 또는 1.76) (0) | 2023.07.21 |
클래스 'org.springframework.boot.autoconfigure.web.HttpMapperProperties'가 더 이상 사용되지 않는 것으로 표시되어 있습니까? (0) | 2023.07.21 |
왜 (0-6)이 -6 = 거짓입니까? (0) | 2023.07.21 |