mySQL中外键必须是索引吗?

2024-04-30

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

这是我的表格:

users

  1. user_id int 主自动增量
  2. 用户名 varchar(20)
  3. 密码 varchar(20)

posts

  1. 主 auto_increment 中的 post_id
  2. 标题 varchar(100)
  3. 消息文本
  4. 用户 ID 整数

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

我想知道我是否应该定义posts->user_id as Index或者其他的东西?如果是这样,为什么?


简短的回答:是的,MySQL 强制你索引外键。

InnoDB 需要外键和引用键上的索引,以便外键检查可以快速并且不需要表扫描。

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

mySQL中外键必须是索引吗? 的相关文章

  • 如何将数据源url查询参数添加为application.properties?

    是否可以添加数据源 url 参数作为额外属性 或者我总是必须将它们作为查询参数直接附加到 url 中 Example spring datasource url jdbc mysql localhost test useSSL false
  • 处理ON INSERT触发器时,innodb表如何锁定?

    我有两个 innodb 表 articles id title sum votes 1 art 1 5 2 art 2 8 3 art 3 35 votes id article id vote 1 1 1 2 1 2 3 1 2 4 2
  • 如何在Word 2010中从SQL数据库检索数据?

    我想用 MS SQL 数据库中的数据填充 Word 文档 这可能吗 如果可能的话 如何实现 我过去曾通过多种方式做到这一点 这取决于用户是从 Microsoft Word 外部还是从 Microsoft Word 内部启动操作 From I
  • SQLite SQL 查询出现问题[重复]

    这个问题在这里已经有答案了 我正在尝试在 SQLite 3 中运行以下查询 SELECT DISTANCE latitude longitude AS distance FROM country WHERE id NOT LIKE HAVI
  • 将用户定义的表类型从 VBA 传递到 SQL

    我的任务是创建一个 Excel 电子表格作为 SQL 数据库的前端 以及一些对数据执行复杂计算的 C 我的老板想要前端作为电子表格 而计算对于 VBA 来说似乎太复杂了 目前 检索数据集的存储过程运行良好 然后 用户将在 Excel 中编辑
  • 在 php 和 mysql 中使用 utf8mb4

    我读过 mysql gt 5 5 3 完全支持每个可能的字符 如果您使用编码utf8mb4对于某个表 列http mathiasbynens be notes mysql utf8mb4 http mathiasbynens be note
  • 重建数据库中的所有索引

    我有一个非常大的 SQL Server 2008 R2 数据库 1 5TB 并将在同一个表中的列之间复制一些数据 我被告知该架构有大量索引 并且想知道是否有默认查询或脚本可以重建所有索引 是否也被建议同时更新统计数据 30 个表中的每一个都
  • 'numpy.float64'对象没有属性'translate'在Python中将值插入Mysql

    import dataset db dataset connect table db 当我尝试向 Mysql 表中插入一些值时 发生了此错误 我插入表中的示例值 print Buy ticker price date OType OSize
  • Errno 121,写入或更新时出现重复密钥?

    SET OLD UNIQUE CHECKS UNIQUE CHECKS UNIQUE CHECKS 0 SET OLD FOREIGN KEY CHECKS FOREIGN KEY CHECKS FOREIGN KEY CHECKS 0 S
  • postgresql 选择不同的最新记录

    我有一个像这样的表 id fkey srno remark date 1 A001 1 2 A001 2 3 A002 1 4 A003 1 5 A002 2 我想要基于 max srno 的不同最新记录 例如 2 A001 2 4 A00
  • 使用 Proc sql 和 Teradata 在 SAS 中编写高效查询

    编辑 这是一组更完整的代码 它准确地显示了下面的答案所发生的情况 libname output data files jeff let DateStart 01Jan2013 d let DateEnd 01Jun2013 d proc s
  • 在 BIRT 中输入参数后更新数据集查询

    在 BIRT 报告设计中传递参数后 如何更改或更新数据集的查询 详细说明 我有一个如下所示的查询 WHERE 该参数标记可以保存不同的值 在用户输入参数后 它看起来像这样 例如 WHERE column name 1 or WHERE co
  • 如何检查一个值是否已经存在以避免重复?

    我有一个 URL 表 但我不想要任何重复的 URL 如何使用 PHP MySQL 检查给定 URL 是否已在表中 如果您不想重复 可以执行以下操作 添加唯一性约束 use REPLACE http dev mysql com doc ref
  • 外部实体更改后索引不更新

    我目前正在开发一个项目 使用 JPA 2 1 保存数据并使用 hibernate search 4 5 0 final 搜索实体 映射类和索引后 搜索工作正常 但是 当我更改值时描述B 类从 someStr 到 anotherStr 数据库
  • 司机和提供商之间的区别

    数据库中的驱动程序和提供程序有什么区别 有没有解释一下 不胜感激 样本 ADO NET driver for MySQL vs providerName System Data EntityClient 来自 MSDN 论坛 驱动程序是安装
  • SQL。 SP 或函数应计算周五的下一个日期

    我需要编写一个存储过程来返回给定日期的下周五日期 例如 如果日期是 05 12 2011 那么它应该返回下周五日期 05 13 2011 如果您通过 05 16 2011 那么它应该返回日期是 5 20 2011 星期五 如果您将星期五作为
  • 您可以使用 MySQL 查询来完整创建数据库的副本吗

    我有一个包含 5 个表的 MySQL 数据库的实时版本和一个测试版本 我不断使用 phpMyAdmin 将实时版本中的每个表复制到测试版本 有谁有mysql查询语句来制作数据库的完整副本吗 查询字符串需要考虑结构 数据 自动增量值以及与需要
  • Mac OSX 10.6 上的 Python mysqldb 不工作

    我正在使用 Python 2 7 并尝试让 Django 项目在 MySQL 后端运行 我已经下载了 mysqldb 并按照此处的指南进行操作 http cd34 com blog programming python mysql pyth
  • 作为 UDF 结果的列上的 Where 子句

    我有一个用户定义的函数 例如myUDF a b 返回一个整数 我试图确保该函数仅被调用一次 并且其结果可以用作WHERE clause SELECT col1 col2 col3 myUDF col1 col2 AS X From myTa
  • Innodb页面大小设置

    在innodb中 页面大小默认为16kb 如何将页面大小设置为 8kb 是否有在源编译步骤中设置的选项 您不需要在源编译步骤中指定页面大小 MySQL 5 6 及更高版本支持不同的页面大小 无需重新编译 但是 您必须在初始化 InnoDB

随机推荐

  • 在客户端处理模式下使用 jQuery DataTables 对字母数字数据进行排序

    所以我有一个包含字母数字值的表 例如 8980 1100 A1100 BA200 我希望它首先以数字顺序方式对其进行排序 然后以字母数字方式进行排序 例如 1000 8980 A1100 BA200 在这里找到了一些帮助 但不完全是我正在寻
  • 为什么空切片有 24 个字节?

    我想了解创建空切片时会发生什么make int 0 我执行此代码进行测试 emptySlice make int 0 fmt Println len emptySlice fmt Println cap emptySlice fmt Pri
  • 如何在Python中模拟“+”运算符(特别是datetime.date + datetime.timedelta)

    我已经解决了 Django 中的一些日期模拟问题 并且最后的障碍 我希望 是以下情况 我有一个 FakeDate 类 它派生于datetime date 它嘲笑了 FakeDate 类按预期工作 但是在添加datetime timedelt
  • 如何在关闭 Bootstrap 3 模式时重新加载页面

    我的目标是在引导模式关闭时重新加载页面 用户可以通过单击关闭按钮或图标或单击远离模式来关闭模式 到目前为止我的代码非常标准 取自 http getbootstrap com javascript modals http getbootstr
  • 最大递归并不完全是 sys.getrecursionlimit() 所声称的。怎么会?

    我制作了一个小函数 可以实际测量最大递归限制 def f x r x try r f x 1 except Exception as e print e finally return r 为了知道会发生什么 我已经检查过 In 28 imp
  • 调用 Word.Documents.Add 后 WinWord.exe 不会退出 - Word .NET Interop

    我遇到了一个经典场景 即在 NET 中创建 Word COM 对象 通过 Microsoft Office Interop Word 程序集 时 WinWord 进程不会退出 即使我正确关闭和释放物体 http www xtremevbta
  • torch.stack() 和 torch.cat() 函数有什么区别?

    OpenAI 的强化学习 REINFORCE 和 actor critic 示例具有以下代码 加强 https github com pytorch examples blob master reinforcement learning r
  • 使用选项卡小部件将 ActiveForm 字段拆分为不同的选项卡

    我正在创建一个表单视图 我想使用官方选项卡小部件以选项卡结构组织表单字段 是否可以使用包含活动表单字段的 div 元素的 id 或类 来初始化选项卡小部件 如何管理它的一个示例如下 首先 将您的联系表单分为每个选项卡的一个视图文件 将 Ac
  • 模板文字类型打字稿重复

    是否可以使用模板文字类型构建重复 例如 type Hex a b c type Id Hex Hex Here I want to say Id is N hex long 原则上 这可以通过 TS 4 1 中的递归条件类型实现 type
  • 使用制表器设置最大桌子高度

    Tabulator 库似乎支持两种设置表格高度的模式 显式值 如果数据集中没有足够的行 则强制在底部出现 灰色 区域 如果行太多 则使用垂直滚动条 或自动模式 调整高度以适合实际数据 不创建滚动条 可以使用最大高度 以便在需要时出现垂直滚动
  • ASP.NET:获取*真实*原始 URL

    在ASP NET中 有什么办法可以得到real原始网址 例如 如果用户浏览到 http example com mypage aspx 2F http example com mypage aspx 2F 我希望能够得到 http exam
  • Phonegap 中使用 AJAX 的 CSRF 令牌

    我正在开发一个应用程序Phonegap使用 Django 后端 后端使用csrf 所以我需要我的Phonegap要使用的应用程序csrf所以它可以与Django 我读到你可以使用csrf通过Ajax 但我没能让它工作 您能举个例子告诉我我该
  • React Redux 混乱

    事实证明 Redux 对我来说有点难以理解 我想知道是否有人可以帮助我指出正确的方向 以获取我想要的结果 只是一个预警 我正在使用 ES6 语法 好的 我已经设置了一些沙箱来测试 redux 的工作原理 这是我正在使用的当前文件设置 act
  • ActiveAndroid 使用架构迁移预填充表

    我想第一次创建一个表 数据库版本 1 并默认插入2行 该表需要由ActiveAndroid自动创建 并且应该通过我在1 sql文件中编写的SQL插入记录 该表看起来不错 但根本没有插入行 没有抛出错误 该模型如下所示 Table name
  • Select2:预选项并通过templateSelection正确渲染

    使用时选择2 v4 https select2 github io 建议的 实际上是正确的 方式以编程方式设置选定的值 就是操作底层的select元素 添加想要的
  • 来自字符串的 Swift Keypath

    有没有办法在 Swift 4 中从字符串创建 Keypath 以通过路径或变量名访问结构中的值 最后我发现我应该使用 CodingKeys 而不是 KeyPaths 通过 String 访问结构体变量的值 提前致谢 迈克尔 考虑你有这样的东
  • 实体框架将 s 添加到我的 .dbo

    我现在使用 Entity Framework DbContext 但遇到了异常 towars dbo 未找到 这很奇怪 因为在我的网站上我总是询问 towar dbo 但没有 towars dbo 你知道问题出在哪里吗 InnerExcep
  • 如何使用 C# 获取 Mozilla 浏览器的当前位置 URL? [复制]

    这个问题在这里已经有答案了 可能的重复 获取 Firefox 网址 https stackoverflow com questions 430614 get firefox url 我在开发 Windows 应用程序以获取正在运行的 Moz
  • 如何确定Access数据库中哪个表使用的空间最多?

    有没有简单的方法可以确定 Access 2007 数据库中每个表使用了多少空间 我有一个异常大的 Access 数据库 需要找出哪个表使用最多的空间 行计数没有提供有关已用空间的足够信息 我知道这是一篇旧文章 但我根据自己对同一问题的经验有
  • mySQL中外键必须是索引吗?

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