0

我创建了具有复合键(column1、column2、column3)的 Table1

CONSTRAINT table_PK PRIMARY KEY (column1,column2,column3)

表 2 有复合键 (column1,column4)

CONSTRAINT table2_FK FOREIGN KEY (column1)
  REFERENCES table1 (column1)
CONSTRAINT table2_column4_FK FOREIGN KEY (column4)
  REFERENCES table3 (column4)

但是我无法将表 2 连接到表 1。在 2 个表之间,唯一的引用列应该只是 column1

但是我收到一个错误:

SQL Error: ORA-02270: no matching unique or primary key for this column-list
02270. 00000 -  "no matching unique or primary key for this column-list"
*Cause:    A REFERENCES clause in a CREATE/ALTER TABLE statement
           gives a column-list for which there is no matching unique or primary
           key constraint in the referenced table.
*Action:   Find the correct column names using the ALL_CONS_COLUMNS
           catalog view

我试过检查约束,一切似乎都是正确的。

当我尝试使用该界面创建表时,它也无法正常工作。

The number of FK columns (2) does not equal to the number of referenced columns (3)

据我所见,他们要求我拥有等量的列才能引用另一个表。不过我觉得没必要。它应该只需要 1 列对吗?如果我错了,请纠正我。

4

1 回答 1

3

我相信您的外键约束需要引用构成您的主键的所有三个列table_PK

由于您基本上是说根据三列中每一列(即每个tuple)中的值组合确定每个主键是唯一的,因此外键约束需要引用所有三列以确定哪个唯一记录/tuple 与 中的键相关联table_PK

于 2012-11-07T06:38:53.373 回答