2011-10-27 34 views
7

Tüm değerlerin benzersiz olduğunu, ancak varsayılan değerin çoğaltılmasına izin veren bir çek kısıtlaması ekleyebilir miyim?Oracle kısıtlaması

cevap

11

Bir funcction tabanlı indeksi (FBI) kullanarak bunu başarabilirsiniz: 'VARSAYILAN' hariç tüm değerler üzerinde benzersiz bir dizin oluşturur

create unique index idx on my_table (case when col != 'DEFAULT' then col end)); 

.

+0

Bu doğru bir yaklaşım, sadece FBI'ların çalışması için sorgu yeniden yazma talebinde bulunmanız gerektiğini unutmayın. – phil

+2

Sorgu yeniden yazma gereksinimi 8i'den beri mevcut değil. –

+0

Kesinlikle haklısın, bu düşüncenin neden tüm zaman boyunca bana yapıştığını bilemezsin. Yaşa ve öğren – phil