Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Wie erstelle ich einen eindeutigen Index für Felder mit möglichen Nullwerten (Oracle 11g)?

Sie möchten die Eindeutigkeit nur für die Zeilen erzwingen, in denen sowohl UNIQUE_VALUE und UNIQUE_GROUP_ID sind nicht null. Dazu können Sie einen eindeutigen funktionsbasierten Index verwenden:

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