維護父子行之間的關係
假設我們在 Company 表中有一行使用 companyId 1.我們可以在 employee 表中插入具有 companyId 1 的行:
insert into Employee values (17, 'John', 1)
但是,我們無法插入具有不存在的 CompanyId 的員工:
insert into Employee values (17, 'John', 111111)
訊息 547,級別 16,狀態 0,行 12 INSERT 語句與 FOREIGN KEY 約束“FK__Employee__Compan__1EE485AA”衝突。衝突發生在資料庫 MyDb
,表“dbo.Company”,列’CompanyId’中。該語句已終止。
此外,只要 employee 表中至少有一個引用它的子行,我們就無法刪除公司表中的父行。
delete from company where CompanyId = 1
訊息 547,級別 16,狀態 0,行 14 DELETE 語句與 REFERENCE 約束“FK__Employee__Compan__1EE485AA”衝突。衝突發生在資料庫 MyDb
,表“dbo.Employee”,列’CompanyId’中。該語句已終止。
外來鍵關係可確保公司和員工行不會取消連結。