SQL:FOREIGN KEY可防止销毁表之间的链接

时间:2012-11-08 19:29:03

标签: sql foreign-keys

参考:w3schools-SQL

它声明:

FOREIGN KEY约束用于防止会破坏表之间链接的操作。有人可以提供外键阻止的操作示例吗?

感谢。

3 个答案:

答案 0 :(得分:3)

假设我们有两个表员工部门。每个部门都有一个唯一的编号,每位员工都会列出他或她所在部门的编号。我们还宣布这是一个外键。

在这种情况下,外键会阻止许多操作:

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

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

答案 1 :(得分:1)

表Employee的主键设置为empid。

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

如果您尝试从表Employee中删除员工'1011',并且该员工在表地址中有记录,则由于依赖性,删除将不会通过。除非你有级联删除设置..

答案 2 :(得分:0)

表用户

ID   UserName
1    msmucker0527
2    Jake

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

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

您无法使用“用户表”中不存在的UserID将记录添加到“电子邮件”表中。这样,您就没有未与用户“链接”的电子邮件地址。在没有先删除电子邮件地址的情况下,您也将无法删除用户,以免被搁置