首页 >数据库 >mysql教程 >为什么我会收到 MySQL 错误 1215:\'无法添加外键约束\”?

为什么我会收到 MySQL 错误 1215:\'无法添加外键约束\”?

Linda Hamilton
Linda Hamilton原创
2024-10-26 22:36:31630浏览

 Why Am I Getting MySQL Error 1215:

MySQL 错误 1215:“无法添加外键约束”

当尝试在 MySQL 中创建外键约束时,至关重要的是确保引用字段和外键字段都符合特定要求。以下是诊断和解决此错误的方法:

引擎一致性

  • 涉及的两个表都必须使用“InnoDB”引擎。

数据类型和长度

  • 两个字段的数据类型和长度应完全匹配。例如,如果引用字段为 VARCHAR(20),则外键字段也应为 VARCHAR(20)。

排序规则

  • 排序规则表示字符集和排序规则。两个字段应使用相同的排序规则,例如 utf8。

唯一性

  • 引用的字段必须是唯一的,通常用 Primary 或 unique 表示键。外键字段不能引用允许重复值的字段。

空处理

  • 确保在以下情况下未定义 SET NULL 条件:一些引用的列被声明为 NOT NULL。

其他症状

如果错误仍然存​​在,请运行命令 SHOW ENGINE INNODB STATUS;揭示更具体的细节。

不正确的语句

提供的 SQL 语句创建一个名为“course”的表,其外键约束引用了“department”表“部门名称”字段。但是,此语句不正确,因为它缺少“dept_name”字段的数据类型规范。为了纠正这个问题,该语句应修改如下:

<code class="sql">create table course (
    course_id varchar(7),
    title varchar(50),
    dept_name varchar(20),
    credits numeric(2,0),
    primary key(course_id),
    foreign key (dept_name) references department(dept_name)
);</code>

以上是为什么我会收到 MySQL 错误 1215:\'无法添加外键约束\”?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn