0

参考:w3schools-SQL

它指出:

FOREIGN KEY 约束用于防止会破坏表之间链接的操作。有人可以举一个外键会阻止的动作的例子吗?

谢谢。

4

3 回答 3

3

假设我们有两张表EmployeesDepartments。每个部门都有一个唯一的编号,对于每个员工,我们都会列出他或她所在部门的编号。我们也将其声明为外键。

在这种情况下,外键会阻止一些操作:

  • 插入在不存在的部门工作的新员工
  • 删除有员工在工作的部门
  • 通过将员工工作的部门更改为不存在的部门来更新员工
  • 如果有在该部门工作的员工,则通过更改其编号来更新该部门
  • 销毁部门表

所有这些都是为了确保当数据库说某个员工在某个部门工作时,该部门将实际存在于数据库中。

于 2012-11-08T19:35:25.567 回答
1

表 Employee 的主键设置为 empid。

Table Employee 中的表地址引用(外键约束)empid

如果您尝试从 Table Employee 中删除员工“1011”,并且该员工在 Table Address 中有一条记录,则由于依赖关系,删除将不会通过。除非您设置了级联删除..

于 2012-11-08T19:33:55.213 回答
0

表用户

ID   UserName
1    msmucker0527
2    Jake

表格电子邮件(外键:UserID = Users.ID)

UserID    Email
1         msmucker0527@email.net
2         jake@email.net

您不能使用用户表中不存在的用户 ID 将记录添加到电子邮件表。这样,您就没有未“链接”到用户的电子邮件地址。您也将被阻止在不先删除电子邮件地址的情况下删除用户,以免它陷入困境

于 2012-11-08T19:36:23.770 回答