navicat中添加表外键显示Cannoot add or update a child row;a foreign key constraint fails

我最近在做一个ssm框架的在线商城,初学,我想试试配置关联关系用association ,因为之前测试用ssm做了一个用户,所以数据库中有一个user 表,这时候我就想在数据库中加入一个role 也就是权限表,这样我就能在用户这段配置关系,在user表加入role表的主键作为user表的外键,这时候问题发生了

如图:user表

我的目的是把role_id 设置成user表的外键,注意看role_id 的类型 ,当时怎么做都加不上外键总是出现 Cannot add or update a child row; a foreign key constraint fails....后边一堆,怎么找错也没找出来

 后来又问了俩个同学 依然没有解决,后来以为同学说让我把表里面的记录都删除了,照做就能加上外键了,这让我很奇怪 ,难道有外键不能加数据,后来猛然一看发现role_id 是int类型,才想起来,原来int 类型有默认值(0),所以我添加外键的时候role_id 默认都是0,这样我role表中并没有id为0的记录所以出错了,这个事情告诉我做事一定要认真,不能马马虎虎,特别是编程的时候。第一次写博客。

猜你喜欢

转载自blog.csdn.net/wlittlefive/article/details/52355669