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”作为主键
对。外键只需引用唯一约束-它不必是主键。您可以在该列上创建唯一约束。外键需要唯一约束,而不是唯一索引:)[当然,唯一索引意味着唯一性,而唯一约束可以由常规索引进行管理]