没有主键的外键可以参考

Har*_*had 4 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)
);
Run Code Online (Sandbox Code Playgroud)

您必须注意到该列c1不是Parent表中的主键.有没有办法在子表中引用它而不c1作为主键?

Mar*_*ers 6

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

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