将组合键中的列之一用作外键

将组合键中的列之一用作外键,第1张

将组合键中的列之一用作外键

正如有关外键的MySQL文档所指出的那样:

InnoDB允许外键引用任何索引列或列组。但是,在被引用的表中,必须有一个索引,其中被引用的列以相同的顺序列为第一列。

NDB在引用为外键的任何列上都需要一个显式的唯一键(或主键)。

因此,如果您使用innodb,则MySQL不允许您在不是索引最左边字段的字段上创建外键。

原因是在多列索引中,您不能基于不是最左边的字段来查找值,因此该索引不能用于快速查找外键检查的值。

MySQL索引的这种行为在有关多列索引的MySQL文档中进行了描述:

如果列不构成索引的最左前缀,则MySQL无法使用索引来执行查找。



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5107799.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-17
下一篇 2022-11-17

发表评论

登录后才能评论

评论列表(0条)

保存