解决 1215 - Cannot add foreign key constraint
描述
今天在创建表单的时候添加外键约束,点击保存的时候出现报错1215 - Cannot add foreign key constraint
分析
出现这种情况报错主要有三个原因
-
外键对应的字段数据类型不一致
-
设置外键时“删除时”设置为“SET NULL”
-
两张表的存储引擎不一致
我在创建user表和role表的时候确定设置了存储引擎都是Innodb,这里排除了第三个可能。
同时我在设置外键删除时没有设置“SET NULL”。
那么出现错误的可能就是第一种:外键对应的字段数据类型不一致
解决
查询中间表的user_id和role_id发现类型是int,而user表和role表的对应字段为varchar类型,修改为统一varchar类型后成功解决问题。
Memorial Day is 512 days |