维护父子行之间的关系

假设我们在 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’中。该语句已终止。

外键关系可确保公司和员工行不会取消链接