Je le tableau suivant Structureunique contrainte autorisant les valeurs NULL pour une colonne dans Oracle
tbl_exam (Year,ExamCode,RollNo)
1). Les données dans le tableau est la suivante:
(2017,1,NULL)
(2017,1,NULL)
(2017,1,1)
(2017,1,2)
Autoriser les valeurs ci-dessus
2).
(2017,1,1)
(2017,1,1) **Not Allowed**
Comment ajouter une contrainte d'unicité qui permet valeur NULL RollNo colonne
Edit: Need Composite contrainte de clé
Résolu: Merci à David Aldridge
create unique index exam_uidx on tbl_exam
(
Nvl2(RollNo, Year , null),
Nvl2(RollNo, Exam_Code, null),
RollNo
)
Edit: Need Composite contrainte de clé –
Vous ne pouvez pas. Si vous ajoutez une contrainte unique basée sur ces trois clés, les deux premiers enregistrements que vous affichez seront clairement identiques. Je soupçonne que le modèle de données est incorrect et que vous ne devriez pas entrer un enregistrement lorsque le RollNo est nul ou que vous avez besoin d'une clé de substitution. – BriteSponge