”工欲善其事,必先利其器。“—孔子《论语.录灵公》
首页 > 编程 > 为什么我会收到 MySQL 错误 1215:\“无法添加外键约束\”?

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

发布于2024-11-04
浏览:466

 Why Am I Getting MySQL Error 1215: \

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

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

引擎一致性

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

数据类型和长度

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

Collat​​ion

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

唯一性

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

Null 处理

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

其他症状

如果错误仍然存​​在,请运行命令 SHOW ENGINE INNODB STATUS;

不正确的语句

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

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)
);
最新教程 更多>

免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。

Copyright© 2022 湘ICP备2022001581号-3