Foreign-Key

外鍵必須始終滿足哪些屬性?

  • December 25, 2015

我知道主鍵。

PK 必須滿足:(1) 唯一,(2) 非 NULL,(3) 完全功能依賴,(4) 索引……這 04 個屬性。

外鍵必須始終滿足哪些屬性?

外鍵約束的目的是保護數據的參照完整性。

  1. 外鍵列的插入和更新必須存在於引用列中。
  2. 通過在執行 DDL(例如 DROP 和 TRUNCATE)之前強制刪除外鍵來保護外表和主表之間的關係(連結)。

希望這可以幫助!

外鍵 (FK)

  • 關係 FK 引用關係 PK。SQL FK 引用 SQL UNIQUE NOT NULL(可能是 PK)。
  • FK 的引用列類型與相應的引用列類型一致。
  • FK 的引用列值必須顯示為相應的引用列值。
  • 關係表沒有 NULL。具有 NULL 的 SQL FK 子行不受約束。
  • 關係 FK 可以是空集;SQL 不允許這樣聲明。

主鍵 (PK)

  • 關係 PK 必須是 UNIQUE NOT NULL,但不能包含較小的 UNIQUE NOT NULL。SQL PK 是 UNIQUE NOT NULL。(它實際上是一個主超級鍵。)
  • 關係 PK 有時可能是空集;SQL 不允許這樣聲明。
  • 一個關係表至少有一個 PK 候選。SQL 基表可以有重複的行,因此沒有 PK。
  • PK 在功能上決定了每一列。

附言

  • PK 可以是部分功能決定因素。具有主鍵的表不必採用任何特定的正常形式才能進行查詢。
  • PK 獨立於索引。索引是一種 DBMS 實現特性。即使在 SQL 中,表主鍵也不必具有關聯的索引。

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