DB2
DB2는 기본키를 제외한 모든 인덱스에서 널 값을 인덱스 처리한다. 코드 2-1과 같이 인덱스를 만들 때 EXCLUDE NULL KEYS 옵션을 명시하면 유일(UNIQUE) 인덱스에서 명시적으로 널 값을 제거할 수 있다.
코드 2-1 DB2에서 UNIQUE 인덱스에 널 값 제외 처리
CREATE UNIQUE INDEX ProductUPC_IDX
ON Products (ProductUPC ASC)
EXCLUDE NULL KEYS;
인덱스의 본래 목적에 맞게 DB2는 모든 널 값이 동일하다고 여긴다. 따라서 유일 인덱스에 WHERE NOT NULL을 명시하지 않은 채 인덱스 컬럼에 널 값을 가진 로우를 두 개 이상 입력하면 중복 값 오류가 발생한다. 널 값을 가진 두 번째 로우는 중복된 값으로 인식되며, 유일 인덱스는 중복 값을 허용하지 않는다.