mysql 添加外键报错:

1、报错信息

Cannot add or update a child row: a foreign key constraint fails 

 

 

 

 2、原因分析

【1】字段的数据类型

父表:

 

 

 

子表:

以上,父表和的对应字段数据类型一致,排除 添加的外键列与另一个表的唯一索引列(一般是主键)的数据类型不同 这一因素。

 【2】表的引擎

USE information_schema;
SELECT
    table_catalog,
    table_schema,
    table_name,
ENGINE 
FROM
TABLES 
WHERE
    table_schema ='net_management' 
    AND table_name ='cap_kpi_base';

 

父表:

 

子表:

 

 

 以上,父表和子表的引擎都是InnoDB,排除 引擎 因素。

【3】数据问题

以上都排除了,只剩下数据影响了,多半是因为 子表里面的外键列,在父表里面 并没有相应的值,以下,用SQL联表验证一下:

 

 3、解决办法

【1】删除子表里面 关联不了 父表主键 的数据

【2】将子表里面,外键列 设置为null

 

posted @ 2019-11-07 16:45  落泪秋  阅读(784)  评论(0编辑  收藏  举报