Sql 使用交集实体中的复合外键作为主键?

Sql 使用交集实体中的复合外键作为主键?,sql,foreign-keys,primary-key,composite-primary-key,Sql,Foreign Keys,Primary Key,Composite Primary Key,我有四个表,2个是独立的实体,一个交叉实体将这两个连接在一起,第三个表引用交叉实体。以下是我所拥有的结构: CREATE TABLE tableA ( primaryKeyA number(4) , PRIMARY KEY (primaryKeyA) ); CREATE TABLE tableB ( primaryKeyB number(4) , PRIMARY KEY(primaryKeyB) ); CREATE TABLE intersection

我有四个表,2个是独立的实体,一个交叉实体将这两个连接在一起,第三个表引用交叉实体。以下是我所拥有的结构:

CREATE TABLE tableA (
    primaryKeyA   number(4) ,
    PRIMARY KEY (primaryKeyA) );

CREATE TABLE tableB (
    primaryKeyB   number(4) ,
    PRIMARY KEY(primaryKeyB) );

CREATE TABLE intersectionTable (
    primaryKeyA   number(4) ,
    primaryKeyB   number(4) ,
    FOREIGN KEY (primaryKeyA) REFERENCES tableA ,
    FOREIGN KEY (primaryKeyB) REFERENCES tableB ,
    PRIMARY KEY (primaryKeyA, primaryKeyB) );

CREATE TABLE tableC (
    primaryKeyC   number(4) ,
    primaryKeyA   number(4) ,
    primaryKeyB   number(4) ,
    FOREIGN KEY (primaryKeyA) REFERENCES intersectionTable ,
    FOREIGN KEY (primaryKeyB) REFERENCES intersectionTable ,
    PRIMARY KEY (primaryKeyA, primaryKeyB, primaryKeyC) );
问题是,每次我创建
table c
时,我都会收到来自oracle的以下错误:

ORA-02256:引用列数必须与引用列数匹配

我需要确保
tableC
可以引用
intersectionTable
中的复合键,我以为我已经用外键约束完成了这项工作。我确实将
表C中的约束条件更改为:

FOREIGN KEY (primaryKeyA) REFERENCES tableA ,
FOREIGN KEY (primaryKeyB) REFERENCES tableB ,
然而,在查询数据库时,我发现它没有使用在
intersectionTable
中创建的复合键,这是我所需要的

任何帮助都会很棒

干杯

CREATE TABLE tableC
    ( primaryKeyC   number(4)
    , primaryKeyA   number(4)
    , primaryKeyB   number(4)
    , FOREIGN KEY (primaryKeyA,primaryKeyB)
          REFERENCES intersectionTable (primaryKeyA,primaryKeyB) 
    , PRIMARY KEY (primaryKeyA, primaryKeyB, primaryKeyC)
    )
    ;