对一张数据表添加外键
未注意栏位名与外栏位名的数据类型,结果直接报错error:3780,这说明两个表关联的列数据类型不一致,检查果然错了,我…
解决方法:将填在外栏位名的列数据类型与栏位名的列数据类型统一
然后继续有报错error:1822,外栏位名不是主键或不是unique,这…
解决方法:外栏位名填的肯定不是主键,将其设置为unique;当然表没设置主键除外…
最后再报错error:1452,插入外键的数据在另一张表中不存在,外键表中不包含原表中已经有的数据,例如:原表中有数据而外键表中没有数据。
这是原表
解决方法:应该在做外键的表中加入原表已经有的数据
当再次创建一张外键关联原表的表时,报error:1826
解释:现在有表A(id lap lapn) B(含有lap字段)C(含有lap字段),当B增加lap为外键关联A表后,B在lap外键关联A,在默认下生成的外键名是一样的,也就是
上面那个名重复了,表名_外键名 这样命名应该不太可能重复
外键添加总结:用navicat for mysql在表t_user中添加外键lap(lap在表t_permissions中)
第一步:到t_permissions中将不是主键的lap设置索引为unique
第二步:向表t_user中添加外键
错误总结:基础知识非常重要,一定要多回顾,不然走远了