Sql 没有主键可供参考的外键

Sql 没有主键可供参考的外键,sql,oracle,oracle10g,oracle11g,Sql,Oracle,Oracle10g,Oracle11g,我有以下两张桌子 CREATE TABLE parent ( c1 INTEGER ); CREATE TABLE child ( c1 INTEGER, c2 INTEGER, c3 INTEGER, CONSTRAINT fk_c3 FOREIGN KEY(c3) REFERENCES parent(c1) ); 您一定注意到了列c1不是父表中的主键。 有没有办法在子表中引用它而不将c1作为主键 有没有办法在子表中引用它而不将“c1”作为主键 对。外键只需引用唯一约束-它不必是主

我有以下两张桌子

CREATE TABLE parent
( c1 INTEGER );

CREATE TABLE child
(
 c1 INTEGER,
 c2 INTEGER,
 c3 INTEGER,
 CONSTRAINT fk_c3 FOREIGN KEY(c3) REFERENCES parent(c1)
);
您一定注意到了列
c1
不是父表中的主键。 有没有办法在子表中引用它而不将
c1
作为主键

有没有办法在子表中引用它而不将“c1”作为主键

对。外键只需引用唯一约束-它不必是主键。您可以在该列上创建唯一约束。

外键需要唯一约束,而不是唯一索引:)[当然,唯一索引意味着唯一性,而唯一约束可以由常规索引进行管理]