gpt4 book ai didi

mysql - 有人可以解释一下 MySQL 外键吗

转载 作者:可可西里 更新时间:2023-11-01 06:57:14 26 4
gpt4 key购买 nike

我知道它们是什么 我的问题是,当您在不同的表中有相同的名称时,您如何链接它们或它们是否自动链接。这是一个例子:

假设我有一个 [orders] 表和一个 [customer] 表。[orders] 表中的每一行都有一个 customer_id 编号,它与 [customer] 表中的 customer_id 相关联。那么如何通过引用订单获取客户信息呢?什么是 sql 查询?

最佳答案

... how do you link them or are they automatically linked when you have identical names in different tables.

这不是自动的,你必须添加一个foreign key constraintorder 表的 customer_id 列上。这可以在创建表时或使用 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 - 有人可以解释一下 MySQL 外键吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1730837/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com