ERROR 1215 (HY000): Cannot add foreign key constraint

MySQL中在为一个varchar类型数据列添加外键时,会发生上面所示的错误,这里我google了一下,感觉它们碰到的问题跟我这个说的有点不相干,尝试了多种方式后来才发现是:主表(table1)所对应关联的数据列必须为unique才可以

[sql] view plain copy

  1. #指定主表dept列unique约束
  2. alter table table1 modify dept varchar(5) not null unique.

这里我创建了两张表(table2、 table1),表结构如图所示:

为什么要增加unique约束?

这个问题我是在hibernate中指定一对一有连接表关联时无意中注意到的,没有unique约束一般都会失败。至于到底为什么看下面这张图应该就清楚了:

时间: 2024-08-02 02:15:47

ERROR 1215 (HY000): Cannot add foreign key constraint的相关文章

mysql执行带外键的sql文件时出现mysql ERROR 1215 (HY000): Cannot add foreign key constraint的解决

ERROR 1215 (HY000): Cannot add foreign key constraint 最近在建表时遇到了这个错误,然后找了下找到了解决办法,记录下: 本来是要建两张表: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 create table department( id int, name varchar(20) ); create table employee( id int primary key auto_increment, name varch

Cannot add foreign key constraint @ManyToMany @OneToMany

最近在使用shiro做权限管理模块时,使用的时user(用户)-role(角色)-resource(资源)模式,其中user-role 是多对多,role-resource 也是多对多.但是在使用spring data jpa 进行关联映射数据库时,报错: Cannot add foreign key constraint.最后我这里产生错误的的原因是 reource 表中主键ID类型是 bigint , 而role-resource 关联表中的resource_id 是int型,所以报错. 其

Mysql使用Navicat建立外键时报错cannot add foreign key constraint分析

Mysql使用Navicat建立外键时报错cannot add foreign key constraint分析 1)要关联的字段类型或长度不一致. 2)两个要关联的表编码不一样. 3)某个表已经有记录了. 4)将"删除时"和"更新时"都设置相同,如都设置成CASCADE. 原文地址:https://www.cnblogs.com/neymargoal/p/10072347.html

mysql8.0数据库执行语句报1215-Cannot add foreign key constraint

原创公众号:路人甲Java     一位工作十年的前阿里P7大佬. 一.这个问题始终没整明白根本原因,只是换了个库再次执行可以成功. 1.在虚拟机中安装好linux系统后,想着装个mysql服务器吧,安装好之后就可以使用navicat进行连接操作了[具体搭建步骤后续更新]. 2.建好了也可以连接成功并创建了数据库,其他几张关联表也都执行成功,唯独在执行创建employees表的时候,界面报1215-Cannot add foreign key constraint,如下图: 3.经查阅资料,我做

[Err] 1215 - Cannot add foreign key constraint

添加外键:在A表中添加外键fk_A_B_1,将B表中的 user_id 指向A表的 主键 user_id. 要求: (1)user_id是A表的主键且在B表中对user_id添加索引约束,即key user_id_index (user_id) (2)两张表的user_id的数据格式完全一致 语法:ALTER TABLE `A` ADD CONSTRAINT `fk_A_B_1` FOREIGN KEY (`user_id`) REFERENCES `B` (`user_id`);

Django 迁移错误 Cannot add foreign key constraint

错误分析 更换数据库后 字符集错误 就是原来的库和新的库在外键的字符集上不一样 如图: 解决方案: 1.迁移先需要失败一次(既然出现了这个错误,说明已经迁移了一次) 2.修改当前表外键字段的字符集(或者说COLLATE),修改为外键关联表的字符集 查看表的创建语句(主要是查看外键关联表主键的字符集) SHOW CREATE TABLE `user_group` (查看创建表的命令) 修改字符集 ALTER TABLE user_group_info MODIFY employee_id VARC

Cannot add foreign key constraint 错误解决办法

产生这个错误的多数原因有一下两点: 1,两张表里要设主键和外键的字段的数据类型或者数据长度不一样 (例如这个是int 另外一个是tinyint,或者都是int,但是设置的长度不同) 2,某个表里已经有记录了 3.两个表的引擎不一样,查看表的引擎语句: show table status from 数据库名 where name='表名'; 4.要设置外键的字段不能为主键 5.改建所参考的字段必须为主键 6.两个字段必须具有相同的数据类型和约束 原文地址:https://www.cnblogs.c

Navicat For MySQL--外键建立与cannot add foreign key constraint分析

参考资料:https://blog.csdn.net/ytm15732625529/article/details/53729155 外键理解:https://www.cnblogs.com/bhlsheji/p/5332910.html 填个坑,回来写总结 原文地址:https://www.cnblogs.com/liaoguanwang/p/9678568.html

MySQL ERROR 1215 (HY000)的一个情况

create table pcourse(cno char(9),cpno char(9), primary key(cno,cpno), foreign key(cno) references course(cno), foreign key(cpno) references course(cno));ERROR 1215 (HY000): Cannot add foreign key constraint 西电数据库上机作业.这个外键就是添不上去.之前student和course因为有中文数