维护父子行之间的关系
假设我们在 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’中。该语句已终止。
外键关系可确保公司和员工行不会取消链接。