具有复合主键的表的SQL外键
我将derby db与NetBeans一起使用,我的表遇到了一些问题: 我创建了具有复合主键的表的SQL外键,sql,key,Sql,Key,我将derby db与NetBeans一起使用,我的表遇到了一些问题: 我创建了表A和表B,我创建它们如下: CREATE TABLE TABLE_A ( FIELD_1 varchar(20), FIELD_2 varchar(50), FIELD_3 varchar(2), PRIMARY KEY(FIELD_1,FIELD_2),
表A
和表B
,我创建它们如下:
CREATE TABLE TABLE_A
(
FIELD_1 varchar(20),
FIELD_2 varchar(50),
FIELD_3 varchar(2),
PRIMARY KEY(FIELD_1,FIELD_2),
)
及
问题是:当TABLE\u a
具有两个字段的主键时,如何将TABLE\u B
记录链接到另一个TABLE\u a
记录?我要放什么来代替“?”
谢谢你 只需使用与父PK匹配的所有子列即可
...
FOREIGN KEY(FIELD_1,FIELD_2) REFERENCES regioni(FIELD_1,FIELD_2)
...
试试这个
CONSTRAINT fk_tbl FOREIGN KEY (FIELD_1,FIELD_2)
REFERENCES regioni(FIELD_1,FIELD_2)
超出了问题的范围,但可能会提供一些信息说明为什么命名约束很重要
如果主键由两列组成,那么引用它的所有外键也必须使用所有这些列。
引用regioni(…)
不应该是引用表a(…)
?
CONSTRAINT fk_tbl FOREIGN KEY (FIELD_1,FIELD_2)
REFERENCES regioni(FIELD_1,FIELD_2)