Ho due tabelle A e B come definito sotto.Come avere una combinazione di chiavi primarie che potrebbe avere valori nulli?
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
colonna A_2 nella tabella A volte può essere nullo ma la combinazione di A_1 e A_2 è sempre unico. Ho bisogno che A_2 faccia parte della chiave primaria, perché solo io posso fare riferimento a A_1 e A_2 come chiavi esterne nella tabella B. Il problema qui è che la chiave primaria non può essere nullo. Come risolvere questo problema? Qualsiasi risposta sarà molto apprezzata