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

Jak ograniczyć tabelę bazy danych, aby tylko jeden wiersz mógł mieć określoną wartość w kolumnie?

Użyj indeksu opartego na funkcjach:

create unique index only_one_yes on mytable
(case when col='YES' then 'YES' end);

Oracle indeksuje tylko klucze, które nie są całkowicie null, a wyrażenie CASE zapewnia, że ​​wszystkie wartości „NO” zostaną zmienione na null, a więc nie będą indeksowane.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Czy odwołania cykliczne są dopuszczalne w bazie danych?

  2. Dzielenie kwoty za pomocą przecinka w Oracle

  3. Jak utworzyć VARRAY jako obiekt bazy danych w bazie danych Oracle

  4. OdbcConnection zwraca chińskie znaki jako ?

  5. SQL -- Wypełnianie dat, które nie dają wyników