文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

错误 1452:无法添加或更新子行:外键约束失败

2023-08-31 13:48

关注

#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

二、取消外键约束

 一般不推荐直接取消外键约束,只有特殊情况下需要。

问题在于 FOREIGN KEY 约束。默认情况下 (SET FOREIGN_KEY_CHECKS = 1),FOREIGN_KEY_CHECKS 选项指定是否检查 InnoDB 表的外键约束。MySQL - 设置 FOREIGN_KEY_CHECKS

我们可以在运行 Query 之前将外键检查设置为禁用。禁用外键

在运行查询之前执行其中一行,然后您就可以成功运行查询。

1)对于Session(推荐)

SET FOREIGN_KEY_CHECKS=0;

2)全局状态

SET GLOBAL FOREIGN_KEY_CHECKS=0;

来源地址:https://blog.csdn.net/godread_cn/article/details/127940407

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     807人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     351人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     314人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     433人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-数据库
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯