SQL具有复合主键的表的外键

时间:2013-05-06 15:07:38

标签: sql key

我正在使用带有NetBeans的derby db,而我的表遇到了一些麻烦:

TABLE_ATABLE_B我创建了这样的内容:

CREATE TABLE TABLE_A
                (
                FIELD_1 varchar(20),
                FIELD_2 varchar(50),
                FIELD_3 varchar(2),
                PRIMARY KEY(FIELD_1,FIELD_2),
                )

CREATE TABLE TABLE_B
                (
                FIELD_1 varchar(20),
                FIELD_2 varchar(50),
                FIELD_3 varchar(20),
                FIELD_4 varchar(25),
                PRIMARY KEY(FIELD_3),
                FOREIGN KEY(???) REFERENCES regioni(FIELD_1,FIELD_2)
                )

问题是:当TABLE_B有两个字段的主键时,如何将TABLE_A记录链接到另一个TABLE_A记录?我需要放什么而不是“???”?

谢谢!!!

2 个答案:

答案 0 :(得分:2)

只需使用与父PK匹配的所有子列

 ...
 FOREIGN KEY(FIELD_1,FIELD_2) REFERENCES regioni(FIELD_1,FIELD_2)
 ...

答案 1 :(得分:1)

试试这个,

CONSTRAINT fk_tbl FOREIGN KEY (FIELD_1,FIELD_2) 
                  REFERENCES regioni(FIELD_1,FIELD_2)

超出问题范围,但可能会提供一些信息,为什么命名约束很重要