sql >> Base de Datos >  >> RDS >> Oracle

¿Cómo crear un índice único en campos con posibles valores nulos (Oracle 11g)?

Solo desea imponer la unicidad en las filas donde ambos UNIQUE_VALUE y UNIQUE_GROUP_ID no son nulos. Para hacer esto, puede usar un índice único basado en funciones:

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);