#1452 - Cannot add or update a child row: a foreign key constraint fails (`goaread`.`views`, CONSTRAINT `views_ibfk_1` FOREIGN KEY (`source_id`) REFERENCES `blogs` (`id`) ON DELETE CASCADE ON UPDATE CASCADE)
一、解决具体原因(推荐)
报错的原因大概分为三种:
1)原因一:添加的外键列与另一个表的唯一索引列(一般是主键)的数据类型不同
2)原因二:要添加外键的表类型与另一个表的存储引擎是不是都为innodb引擎
查看表引擎
方法一: show create table 表名;
方法二:show table status from 数据库 where name=‘表名’;
方法三:
use information_schema;
select table_catalog,table_schema,table_name,engine from tables where table_schema=‘数据库名’ and table_name=‘表名’;
3)原因三:设置的外键与另一个表中的唯一索引列(一般是主键)中的值不匹配
#解决办法:删除要成为外键的列,再次创建并默认为NULL
二、取消外键约束
一般不推荐直接取消外键约束,只有特殊情况下需要。
我们可以在运行 Query 之前将外键检查设置为禁用。禁用外键。
在运行查询之前执行其中一行,然后您就可以成功运行查询。
1)对于Session(推荐)文章来源:https://www.toymoban.com/news/detail-448189.html
SET FOREIGN_KEY_CHECKS=0;
2)全局状态文章来源地址https://www.toymoban.com/news/detail-448189.html
SET GLOBAL FOREIGN_KEY_CHECKS=0;
到了这里,关于错误 1452:无法添加或更新子行:外键约束失败的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!