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

Bedingte eindeutige Einschränkung mit mehreren Feldern in Oracle-Datenbank

@jamesfrj:Es sieht so aus, als wollten Sie sicherstellen, dass Ihre Tabelle nur einen Datensatz mit status <>5 enthalten sollte .

Sie können versuchen, einen eindeutigen funktionalen Index zu erstellen, indem Sie die Spalten wie unten angegeben verketten

      create table XPTO_TABLE (id number, 
                            obj_x varchar2(20),
                            date_x date,
                            type_x varchar2(20),
                            status_x varchar2(20)                              
                           );

      create unique index xpto_table_idx1 on XPTO_TABLE(case when status_x <>'5'  THEN              obj_x||date_x||type_x||STATUS_x ELSE null END);

Hoffe es hilft

Vishad