Oracle
 sql >> Base de données >  >> RDS >> Oracle

Comment créer un index unique sur des champs avec des valeurs nulles possibles (Oracle 11g) ?

Vous souhaitez uniquement appliquer l'unicité sur les lignes où les deux UNIQUE_VALUE et UNIQUE_GROUP_ID ne sont pas nuls. Pour ce faire, vous pouvez utiliser un index unique basé sur une fonction :

CREATE UNIQUE INDEX func_based_index ON the_table
  (CASE WHEN unique_value IS NOT NULL
         AND unique_group_id IS NOT NULL
        THEN UNIQUE_VALUE || ',' || UNIQUE_GROUP_ID
   END);