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

Come vincolare una tabella di database in modo che solo una riga possa avere un valore particolare in una colonna?

Usa un indice basato su funzioni:

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

Oracle indicizza solo le chiavi che non sono completamente nulle e l'espressione CASE qui assicura che tutti i valori "NO" vengano modificati in null e quindi non indicizzati.