Comment avoir une clé primaire combinaison qui peut contenir de valeurs null?

J'ai deux tables A et B telles que définies ci-dessous.

create table A
(
  A_1 varchar2(10) NOT NULL,
  A_2 varchar2(10),
  A_3 varchar2(10),
  constraint A_PK primary key (A_1,A_2)
)
TABLE A DATA
A_1      |A_2   |A_3
1111     abc     some_text1
1111     null    some_text1
1112     abc     some_text2
1113     def     some_text3

   create table B
   (
     B_1 varchar2(10) NOT NULL,
     B_2 varchar2(10),
     B_3 varchar2(10),
     constraint B_PK primary key (B_1,B_2,B_3),
     constraint B_FK foreign key (B_1,B2) references A(A_1,A_2)
   )
TABLE B DATA
B_1    | B_2    |B_3
1111    abc      text1
1111    null     text2
1111    null     text3
1111    null     text4 

A_2 colonne dans Une table peut parfois être nul, mais la combinaison de A_1 et A_2 est toujours unique. J'ai besoin de A_2 faire partie de la clé primaire car alors seulement je peux de référence A_1 et A_2 comme des clés étrangères dans la table B. Problème ici, c'est la clé primaire ne peut pas être null. Comment résoudre ce problème?
Toute réponse sera très appréciée

InformationsquelleAutor Ram | 2010-03-10