首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

Oracle 外鍵建立失敗 ORA-02270:參考欄位必須為主鍵或唯一鍵

     編輯:程式設計綜合問答

建表 student 時,外鍵 Gname 參考 gt(Gname),但 gt.Gname 非主鍵也非唯一鍵,導致 ORA-02270。

錯誤 DDL

CREATE TABLE gt (
    account INT PRIMARY KEY,
    Gname VARCHAR(10) -- 非主鍵、無 UNIQUE
);
CREATE TABLE student (
    ...
    Gname VARCHAR(10),
    FOREIGN KEY (Gname) REFERENCES gt(Gname) -- 報錯
);

修正方案

  1. 參考主鍵: 改參考 gt(account),student 增加 G_account INT 欄位。
  2. 或加唯一約束: ALTER TABLE gt ADD UNIQUE (Gname);(業務允許時)。

最佳實踐

  • 外鍵**必須**參考目標表的 主鍵 或 唯一約束 欄位。
  • 命名外鍵約束:CONSTRAINT fk_student_gt_account FOREIGN KEY (G_account) REFERENCES gt(account),利於維護。
  • 資料類型、長度、字元集必須**完全一致**。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved