2011-10-09 10 views
6

var: Ben izin vermeyen bir sınırlama nasıl oluşturabilirim, nasıl bir değerler çiftinin üzerinde benzersiz bir kısıtlama ilan ediyorum VE ben iki değişkeni arasında kural tanımlayan bir tablo var ters çifti

CREATE TABLE VARIANTCOMBINATIONRULE 
(
    VARRECID0 NUMBER(10) NOT NULL, 
    VARRECID1 NUMBER(10) NOT NULL, 
    RULE  NUMBER 
); 

ALTER TABLE VARIANTCOMBINATIONRULE ADD (
    CONSTRAINT VARIANTCOMBINATIONRULE_PK 
    PRIMARY KEY 
    (VARRECID0, VARRECID1)); 

" ters çift "? Bununla demek istediğim, eğer varyantlar 12 ve 14 için bir kayıt varsa, ters çevrilmiş çifti (14 ve 12) için yeni bir kayda izin verilmemelidir.

+0

Ben doğrudan ... (otomatik olarak bazı özel işaretleyici ile ters çifti ekleyerek örneğin) bu tür şeylerden sağlamak için bir tetikleyici kullanmak gibi çeşitli seçenekler ... – Yahia

cevap

7
CREATE UNIQUE INDEX unique_cd0_cd1 
     ON VARIANTCOMBINATIONRULE (least(VARRECID0, VARRECID1), greatest(VARRECID0, VARRECID1)); 
+0

vardır ki sanmıyorum Teşekkürler, bu hile :-) –

İlgili konular