Tôi có hai bảng A và B như được định nghĩa dưới đây.Làm cách nào để có tổ hợp khóa chính có thể có giá trị null?
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
Cột A_2 trong bảng A đôi khi có thể rỗng nhưng kết hợp A_1 và A_2 luôn là duy nhất. Tôi cần A_2 là một phần của khóa chính vì sau đó chỉ có tôi mới có thể tham chiếu A_1 và A_2 chúng dưới dạng khóa ngoài trong bảng B. Vấn đề ở đây là khóa chính không thể rỗng. Làm thế nào để giải quyết vấn đề này? Bất kỳ phản hồi nào sẽ được đánh giá cao