Tengo dos tablas A y B como se definen a continuación.¿Cómo tener una combinación de teclas principal que puede tener valores nulos?
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
columna A_2 en el cuadro A veces puede ser nulo, pero la combinación de A_1 y A_2 es siempre único. Necesito que A_2 sea parte de la clave principal porque solo puedo hacer referencia a A_1 y A_2 como claves externas en la tabla B. El problema aquí es que la clave principal no puede ser nula. ¿Cómo resolver este problema? Cualquier respuesta será muy apreciada