如果可以使用 WHERE,为什么还需要使用外键?

本教程将介绍如果可以使用 WHERE,为什么还需要使用外键?的处理方法,这篇教程是从别的地方看到的,然后加了一些国外程序员的疑问与解答,希望能对你有所帮助,好了,下面开始学习吧。

如果可以使用 WHERE,为什么还需要使用外键? 教程 第1张

问题描述

一个关于 MySQL 中外键的初学者问题.

在 w3school 中说,

一个表中的 FOREIGN KEY 指向另一个表中的 PRIMARY KEY.

还有WHERE,

WHERE id = page_id

那么如果我可以使用 WHERE 来链接表,那么拥有外键的主要目的是什么?

推荐答案

查询不是严格需要的,这是真的.它的存在有几个原因:

    作为对表的约束,以阻止您插入不指向任何内容的内容;

    作为优化器的线索;和

    由于历史原因,哪里更需要.

(1) 可能是三者中最重要的一个.这称为 参照完整性.这意味着如果外键中有一个值,那么在父表中就会有一条以该值作为主键的对应记录.

话虽如此,并非所有数据库都支持参照完整性(例如 MySQL/MyISAM 表),并且那些不一定强制执行的数据库(出于性能原因).

好了关于如果可以使用 WHERE,为什么还需要使用外键?的教程就到这里就结束了,希望趣模板源码网找到的这篇技术文章能帮助到大家,更多技术教程可以在站内搜索。