유일 인덱스는 인덱스 키의 중복을 제한하는 데이터베이스 구조이다. 검색 지원과 함께 데이터의 유일성 규칙을 강제한다.
원리
여러 열의 인덱스라면 그 값 조합의 중복을 검사한다. PostgreSQL은 기본 키나 유일 제약을 정의할 때 이를 구현하는 인덱스를 자동으로 만들 수 있다.
예시
같은 조직 안에서 사용자 이름이 중복되면 안 된다면 (organization_id, username)의 조합을 유일하게 만들 수 있다.
SQL |
|---|
SQL SELECT · SQL JOIN · SQL GROUP BY · SQL HAVING · SQL 공통 테이블 식 |
주의할 점
NULL을 같은 값으로 취급하는지는 DB와 옵션에 따라 다르다. 이미 제약이 만든 인덱스를 중복 생성하지 말고 유일성과 NULL 허용 여부를 따로 설계한다.