Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Warunkowe ograniczenie unikatowe z wieloma polami w Oracle db

@jamesfrj:wygląda na to, że próbujesz upewnić się, że Twoja tabela powinna zawierać tylko jeden rekord o status <>5 .

Możesz spróbować stworzyć unikalny indeks funkcjonalny, łącząc kolumny, jak podano poniżej

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

Mam nadzieję, że to pomoże

Vishad



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Musisz znaleźć następny i poprzedni dzień roboczy w Oracle

  2. Jak sprawdzić NLS_LANG klienta?

  3. Dostawca nie jest kompatybilny z wersją klienta Oracle

  4. Oracle ODBC:SQLAllocHandle sterownika na SQL_HANDLE_ENV nie powiodło się

  5. niejawne sprzężenia wewnętrzne - czy są równe?