当前位置: 首页 > 面试题库 >

外键必须在mySQL中为Index?

笪德华
2023-03-14
问题内容

我刚刚创建了自己的第一个mySQL表(不是使用Joomla,Wordpress等),并且我是MS SQL开发人员多年,但是通常我可以轻松地在MS
SQL中创建外键,但是遇到了困难或这里缺乏知识。

这是我的桌子:

使用者

  1. user_id int主要auto_increment
  2. 用户名varchar(20)
  3. 密码varchar(20)

帖子

  1. 主auto_increment中的post_id
  2. 标题varchar(100)
  3. 讯息文字
  4. user_id int

当我尝试向引用的用户添加外键时posts->user_id,无法posts->user_id在mySQL面板上的选项列表Relation_view窗口中看到该选项。

我想知道是否应该定义posts->user_idasIndex或某物?如果是这样,为什么?


问题答案:

简短的答案:是的,MySQL会强制您索引外键。

InnoDB要求在外键和引用键上建立索引,以便外键检查可以快速进行,而无需进行表扫描。

您可以在MySQL文档页面上阅读有关外键的更多信息:http : //dev.mysql.com/doc/refman/5.5/en/innodb-
foreign-key-constraints.html



 类似资料:
  • 在此图中 表(顶部)仅将定义为外键,而在表(底部)中,原始表的每个引用的主键都定义为外键。 为什么会这样?非常感谢。

  • 我知道这个主题在这里讨论了很多次,但我仍然坚持一个例外:外键必须与引用的主键具有相同的列数。 (我正在使用spring数据和hibernate) 我的身份证类别: 我的实体: 对于这种构造,我得到以下例外情况: 导致:org.hibernate.MappingException:外键(FK_ad3h9gu4labg6ix34bei3poxt:proxy_dienst_关系[parent_diens

  • 我正在使用mysql并试图删除外部约束,但我无法删除该密钥。 它的节目, 如何解决这个问题,请帮助我。

  • 问题内容: 我在想, 我确定可以控制添加的类型,因此在MySQL中使用约束作为外键的动机是什么? 它会提高性能吗? 问题答案: 外键强制执行参照完整性。这些约束保证了表中具有引用表的字段的行将永远不会具有表中不存在的值。 外键不需要具有有效的关系数据库(实际上MySQL的默认存储引擎不支持FK),但是对于避免断开关系和孤立行(即参照完整性),它们绝对是必不可少的。是必需的在数据库级别实施参照完整性

  • 问题内容: 为什么字典键必须是不可变的?我正在寻找一个简单明了的原因,为什么Python字典中的键具有该限制。 问题答案: 在我的计算机上,有一个包含大量英语单词的文件: 让我们创建一个字典来存储所有这些单词的长度: 并且,为了踢球,我们将改组原始单词列表: 嗯,滚刀。无论如何…现在我们已经有点混乱了,我们变得有点偏执了(可能出于与渴望滚刀相同的原因),并且我们想检查字典中的所有单词是否都正确。我

  • 问题内容: 目标:我想在ImportJob中使用importJobId作为分配表ID的外键,这样,当我们那时具有importJobId时,那么我们只能在ID中分配ID,因为没有Job时就无法进行任何分配。 ImportJob表的复合主键为[ORGID,IMPORTJOBTYPE],正在尝试使用以下方式在hibernate状态下创建外键关系: 在Allocation.hbm.xml中无法解决,并收到