더북(TheBook)

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을 명시하지 않은 채 인덱스 컬럼에 널 값을 가진 로우를 두 개 이상 입력하면 중복 값 오류가 발생한다. 널 값을 가진 두 번째 로우는 중복된 값으로 인식되며, 유일 인덱스는 중복 값을 허용하지 않는다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.