建表 student 時,外鍵 Gname 參考 gt(Gname),但 gt.Gname 非主鍵也非唯一鍵,導致 ORA-02270。
CREATE TABLE gt (
account INT PRIMARY KEY,
Gname VARCHAR(10) -- 非主鍵、無 UNIQUE
);
CREATE TABLE student (
...
Gname VARCHAR(10),
FOREIGN KEY (Gname) REFERENCES gt(Gname) -- 報錯
);
gt(account),student 增加 G_account INT 欄位。ALTER TABLE gt ADD UNIQUE (Gname);(業務允許時)。CONSTRAINT fk_student_gt_account FOREIGN KEY (G_account) REFERENCES gt(account),利於維護。