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

原文地址:https://www.cnblogs.com/yybrhr/p/11813103.html