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

这篇具有很好参考价值的文章主要介绍了错误 1452:无法添加或更新子行:外键约束失败。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

#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)全局状态文章来源地址https://www.toymoban.com/news/detail-448189.html

SET GLOBAL FOREIGN_KEY_CHECKS=0;

到了这里,关于错误 1452:无法添加或更新子行:外键约束失败的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【MySQL入门指南】外键约束使用详解

     MySQL是一种关系型数据库,现实中的业务往往是相互关联的,这也就决定了数据库中的表也是存在相互关系的。而表与表之间的相互关系就是通过外键来维护的。给大家举一个现实的例子来帮助理解:  现在我们需要在数据库中存放学生的选课信息。如果我们将课程具体信

    2024年02月01日
    浏览(59)
  • MySQL外键约束和多表查询

    知识点 示例 知识点 示例 准备数据 示例 知识点 示例 知识点 示例

    2024年02月04日
    浏览(68)
  • MySQL--删除表的外键约束,简单易懂。

    删除表的外键约束 我们曾在第一章中讲过外键的作用,以及如何创建一个表的外键。建立了外键我们就建立起了两张表的关联关系,那如果我想删除主表呢?为了确保数据库的正确性,我们必须先解除两个表之间的关联关系,那就是删除外键约束啦!让我们先来看看删除外键

    2024年04月17日
    浏览(45)
  • 一文彻底搞清楚MySQL的主键、外键、约束和各种索引

    主键用于唯一标识表中每一行数据,外键用于建立表与表之间关联关系,约束用于限制表中数据的规则,索引用于加速查询。 主键是一种用于唯一标识表中每一行数据的标识符。在Mysql中,主键可以是一个或多个列的组合,但是必须满足以下条件: 主键列的值必须唯一,不能

    2024年02月08日
    浏览(51)
  • 使用MySQL建立外键约束时,报错3780的问题分析,和解决办法

    今天在用语句给两个表建立外键约束时,报了3780的错误–具体描述如下: 大概意思就是或说,主表和从表的create_use 和 user_id 两个字段这不兼容 经过一顿分析之后发现,是因为这两个表的这两列数据类型不一样 解决办法–修改表中的数据类型(在这里使用的是Navicat可视化界

    2024年01月22日
    浏览(44)
  • 【MySQL】MySQL表的约束-空属性/默认值/列属性/zerofill/主键/自增长/唯一键/外键

    表的约束:表中一定要有各种约束,通过约束,让我们未来插入数据库表中的数据是符合预期的。约束的本质是通过计数手段,倒逼程序员,插入正确的数据,反过来,站在mysql的视角,凡是插入进来的数据,都是符合约束的 约束的最终模板:保证数据的完整性和可预期性

    2024年02月01日
    浏览(49)
  • iOS 17更新失败或无法更新怎么办?8 个解决方法快速解决!

    苹果即将在2023年9月19日发布iOS 17正式版,许多用户也都相当期待随之而来的iOS 17新功能,不过当你准备将iPhone 更新到iOS 17 版本时,可能会发生一些不可预测的iOS 17更新失败或更新卡住的问题,但不用担心,本文将会详细为大家提供8个更新失败的解决方法,帮你解决无法更新

    2024年02月07日
    浏览(46)
  • MySQL---多表联合查询(上)(多表关系、外键约束、学生成绩多表关系、交叉连接查询)

    1. 多表关系 MySQL 多表之间的关系可以概括为: 一对一:        比如:一个学生只有一张身份证;一张身份证只能对应一学生。        实现原则:在任一表中添加唯一外键,指向另一方主键,确保一对一关系。         一般一对一关系很少见,遇到一对一关系的表最好是

    2024年02月05日
    浏览(56)
  • 错误记录——mysql5.7连接失败,服务无法启动

    上周安装完mysql后,成功新建了数据库,一切都是正常的,于是就先搁置一旁。今天周一过来,却突然发现无法连接mysql了。 第一反应是服务没有启动,毕竟重启了电脑,说不定是服务没有自动启动,于是打开了服务管理器,却发现没有mysql对应的服务。既然没有,那我就自己

    2024年02月08日
    浏览(41)
  • Unity入坑常见错误:无法添加脚本

    在某种情况下 刚入坑unity的同学 在搞完了一切环境搭建之后 希望能够将自己的代码搭载进入自己的游戏物体 但此时却出现无法添加脚本的报错 :如下  “”内是该文件的命名 出现这种情况的解决方法很简单我们需要检查的是代码中对应类名是否与我们要搭载的游戏物体名

    2024年02月07日
    浏览(50)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包