引用一个外键,该外键是父键上的另一个键的主键 table

references a foreign key that is a primary key with another key on the parent table

我有那些 tables :

create table t_table(t1 int, constraint tprim primary key(t1));

create table parent_table(t1 int, p1 int, p2 int, constraint pprim primary key(t1, p1));

create table child_table(t1 int, c1 int, p1 int, constraint cprim primary key(t1, c1), constraint fchild foreign key (p1) references parent_table(p1));

我在创建第二个 table 时遇到此错误:

ORA-02270: no matching unique or primary key for this column-list

p1 in parent_table 不是唯一的,所以我不能让它唯一来解决这个问题。

在这种情况下如何说 p1 是 child_table 中引用 parent_table(p1) 的外键?

提前致谢。

你不能。外键引用主键。也许您想做的是将 t1 包含在 child_table 的外键中?或者,如果您真的需要像 p1 这样的东西在 child_table 中成为 FK,也许您还需要一个 table,只是为了 p1,具有唯一值?然后 parent_table 和 child_table 中的 p1 是 FK 指向这个额外的 table.

这是不可能的,您必须引用主键