MySQL 中的外键约束错误:根本原因和解决方案
错误“ERROR 1215 (HY000): 无法添加外键约束”在 MySQL 中定义两个表之间的外键引用时会出现此问题。要解决此问题,确保引用字段和外键字段都满足特定条件至关重要:
引擎兼容性:
两个字段都必须驻留在具有相同的引擎,通常是 InnoDB。
数据类型和长度:
字段的数据类型和长度必须相同。例如,如果引用的字段是 VARCHAR(20),则外键字段也应该是 VARCHAR(20)。
排序规则:
字段的排序规则应该匹配例如,utf8。
唯一性:
父表中引用的字段应该是唯一的或声明为 PRIMARY KEY,以确保子表中的每一行都有有效的引用。
NULL 约束:
如果外键字段允许 NULL 值,则引用的字段也应该允许 NULL 值。
独占执行:
某些场景可能需要专门执行外键创建语句,而无需任何其他并发查询。这可以通过启动事务来实现,例如:
<code class="sql">BEGIN; CREATE TABLE course ( ... ); COMMIT;</code>
其他措施:
请记住,必须验证是否满足所有这些条件以确保成功创建外键约束。
以上是以下是一些标题选项,每个标题都强调文章的不同方面: 简短和一般: * 为什么MySQL无法添加外键约束? * 外键约束 E 故障排除的详细内容。更多信息请关注PHP中文网其他相关文章!