Oracle
 sql >> база данни >  >> RDS >> Oracle

Как да ограничим таблица на база данни, така че само един ред да има определена стойност в колона?

Използвайте базиран на функция индекс:

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

Oracle индексира само ключове, които не са напълно нулеви, а изразът CASE тук гарантира, че всички стойности „НЕ“ се променят на нулеви и така не се индексират.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да изпълним този израз на Oracle на JDBC

  2. Не може да се създаде Oracle View с достъп до обекти на други схеми, въпреки разрешенията

  3. SQL заявка за връщане на N реда от dual

  4. ... където count(col)> 1

  5. Как да съхранявате само време; не дата и час?