Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Como criar um índice exclusivo em campos com possíveis valores nulos (Oracle 11g)?


Você deseja impor exclusividade apenas nas linhas em que UNIQUE_VALUE e UNIQUE_GROUP_ID não são nulos. Para fazer isso, você pode usar um índice exclusivo baseado em função:
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);