Mysql

在 MySQL 上分配外鍵有什麼用

  • May 12, 2016

除了索引外鍵的值之外,將外鍵分配給數據庫的優勢是什麼?我見過很多不分配外鍵的數據庫,但它們的架構是相關的。一個例子是 wiki (mediawiki) 的數據庫。我研究了他們的模式,雖然他們的表是使用一個表的主鍵互連的,但他們沒有分配任何外鍵。

外鍵是一種約束。約束的目的是確保表中的數據遵循一定的規則。

您使用外鍵約束來確保子數據具有父數據。您可以使用它來防止孤立子記錄或促進級聯刪除或更新。

從產品文件中的FOREIGN KEY Constraints :

外鍵 (FK) 是用於在兩個表中的數據之間建立和強制連結的列或列組合。您可以通過在創建或修改表時定義 FOREIGN KEY 約束來創建外鍵。

FOREIGN KEY 約束不必只連結到另一個表中的 PRIMARY KEY 約束;它也可以定義為引用另一個表中唯一約束的列。FOREIGN KEY 約束可以包含空值;但是,如果復合 FOREIGN KEY 約束的任何列包含空值,則會跳過對構成 FOREIGN KEY 約束的所有值的驗證。要確保驗證複合 FOREIGN KEY 約束的所有值,請在所有參與列上指定 NOT NULL。

引用自:https://dba.stackexchange.com/questions/73750