为了账号安全,请及时绑定邮箱和手机立即绑定

MySQL中外键的基础?

MySQL中外键的基础?

qq_花开花谢_0 2019-12-17 09:44:17
关于如何使用MySQL的外键构造有什么好的解释?我不太了解MySQL文档本身。到目前为止,我一直在通过联接和编程代码处理诸如外键之类的事情。问题的第二部分,使用MySQL的内置外键是否有任何改进?
查看完整描述

3 回答

?
烙印99

TA贡献1829条经验 获得超13个赞

使用实际外键的主要好处是确保数据的完整性,并能够在修改或删除某些内容时对相关项目设置级联操作。

例如,假设您正在编程一个论坛。您有一个带有主键的“ topics”表topics.topic_id,又有一个“ posts”表,其中的帖子通过column列附加到主题posts.topic_id,这是topics表的外键。

这种外键关系确保每个帖子都附加到有效主题。如果您拥有的唯一主题的ID为#1,则不可能在数据库中存在与主题#2关联的帖子。数据库确保了这一点。

为了获得层叠的好处,您可以对其进行设置,以便在从主题表中删除主题时,数据库自动删除该主题所附的帖子表中的所有帖子。这很好,因为它消除了您必须记住要手动执行的步骤,当您将许多表链接在一起时,该步骤会变得非常复杂。使用外键可以自动清除所有关系。


查看完整回答
反对 回复 2019-12-17
?
神不在的星期二

TA贡献1963条经验 获得超6个赞

1.FOREIGN KEYS仅确保您的数据一致。

2.如果我们对外键定义应用删除级联,则在父行删除时引用行将自动删除。

3.如果对外键定义应用“更新级联”,则在父行更新时,子行将自动更新。

查询:ALTER TABLE子项ADD FOREIGN KEY(parent_id)参考parent(id)ON UPDATE CASCADE ON DELETE CASCADE;

您不能删除直接父表,首先要从子表中删除外键,而不要删除父表。


查看完整回答
反对 回复 2019-12-17
  • 3 回答
  • 0 关注
  • 472 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信