我有两个表 A 和 B,定义如下。
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 中的 A_2 列有时可能为空,但 A_1 和 A_2 的组合始终是唯一的。我需要 A_2 成为主键的一部分,因为只有我可以将 A_1 和 A_2 引用为表 B 中的外键。这里的问题是主键不能为空。如何解决这个问题呢?
任何回应都将受到高度赞赏
您可以通过不将其作为主键来解决此问题。主键不能是NULL
或者,如果它们是复合主键,则不能包含NULL
。改为将其设为唯一索引。为主键创建自动编号字段。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)