有人可以解释MySQL外键吗

本教程将介绍有人可以解释MySQL外键吗的处理方法,这篇教程是从别的地方看到的,然后加了一些国外程序员的疑问与解答,希望能对你有所帮助,好了,下面开始学习吧。

有人可以解释MySQL外键吗 教程 第1张

问题描述

我知道我的问题是什么,你怎么链接它们,或者当你在不同的表中有相同的名字时它们会自动链接.这是一个例子:

假设我有一个 [orders] 表和一个 [customer] 表.[orders] 表中的每一行都有一个 customer_id 编号,该编号与 [customer] 表中的 customer_id 相关联.那么怎么通过参考订单来获取客户信息呢?什么是 sql 查询?

推荐答案

...怎么链接它们,或者当您在不同的表中有相同的名称时它们会自动链接.

这不是自动的,你必须添加一个 order 表的 customer_id 列上的 noreferrer">外键约束.这可以在创建表时或使用 ALTER 语句完成.检查文档以获取详细信息.正如其他人指出的那样,请注意两个表都需要是 InnoDB 表(MyISAM 存储引擎不支持外键约束,会忽略它们).

无论有无 FK 约束,查询将类似于:

SELECT * 
FROM CUSTOMER C, ORDER O
WHERE C.ID = O.CUSTOMER_ID
AND O.ID = ...

FK 约束将仅"保证 ORDER 表的 CUSTOMER_ID 列不能包含 CUSTOMER 表中不存在的值(可能为 NULL 除外),从而强制引用完整性.

好了关于有人可以解释MySQL外键吗的教程就到这里就结束了,希望趣模板源码网找到的这篇技术文章能帮助到大家,更多技术教程可以在站内搜索。