Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
具有复合主键的表的SQL外键_Sql_Key - Fatal编程技术网

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

具有复合主键的表的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),

我将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),
                )

问题是:当
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)