sql >> Database teknologi >  >> RDS >> Oracle

Hvordan opretter man et unikt indeks på felter med mulige null-værdier (Oracle 11g)?

Du ønsker kun at gennemtvinge unikhed på rækkerne, hvor både UNIQUE_VALUE og UNIQUE_GROUP_ID er ikke nul. For at gøre dette kan du bruge et unikt funktionsbaseret indeks:

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


  1. Valg af tilfældig indtastning fra MySQL-databasen

  2. Sådan fjerner du efterfølgende hvidt mellemrum i SQL Server – RTRIM()

  3. Avanceret SQL:Indsæt output fra den parametriserede tabelværdi-funktion i SQL-tabel

  4. 'SQLSTATE[HY093]:Ugyldigt parameternummer:antallet af bundne variable matcher ikke antallet af tokens'