当前位置: 首页 > 知识库问答 >
问题:

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

古畅
2023-03-14

当我不想将两个表相互连接时,我收到消息:#1452 - 无法添加或更新子行:外键约束失败....我想使用外键oauth_uid2将oauth_uid2(主键)从facebook_users选项卡连接到错误选项卡。但我总是收到这个信息。我已经清除了我的数据,但没有任何效果。同样在表中users_facebook我有 1 条记录。

1452-无法添加或更新子行:外键约束失败(phple.bugs, CONSTRAINTbugs_ibfk_1FOREIGN KEY(oauth_uid2)REFERENCESusers_facebookoauth_uid2)ON DELETE CASCADE ON UPDATE CASCADE)

Bugs表:FK=oauth_uid2,PK=bug_id

 #Name  Type    Collation   Attributes  Null    Default Extra   Action
     1  bug_id  int(30)         No  None    AUTO_INCREMENT    Change      Drop    Browse distinct values     Primary      Unique      Index  Spatial     Fulltext
     2  bugtitle    varchar(50) utf8_unicode_ci     No  None          Change      Drop    Browse distinct values      Primary     Unique      Index  Spatial     Fulltext
     3  bugdescription  varchar(500)    utf8_unicode_ci     No  None          Change      Drop    Browse distinct values      Primary     Unique      Index  Spatial     Fulltext
     4  oauth_uid2  int(30)         No  None          Change      Drop    Browse distinct values      Primary     Unique      Index  Spatial     Fulltext

users_facebook表:PK=oauth_uid2

#   Name    Type    Collation   Attributes  Null    Default Extra   Action
     1  oauth_uid2  int(30)         No  None          Change      Drop    Browse distinct values     Primary      Unique      Index  Spatial     Fulltext
     2  email   varchar(70) utf8_unicode_ci     No  None          Change      Drop    Browse distinct values      Primary     Unique      Index  Spatial     Fulltext

共有2个答案

上官凯泽
2023-03-14

如果您使用其他工具(如phpMyAdmin或Navicat)备份Magento数据库,这些特殊语句将丢失。当您尝试运行. sql文件时,您将收到以下错误:

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

发生此错误是因为您要导入的数据是逐个表、逐行提供的,而不考虑数据库的逻辑结构和完整性。

要恢复. sql文件备份而不进行约束检查,只需在。sql文件:

SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT;
SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS;
SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION;
SET NAMES utf8;
SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0;
SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0;
SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO';
SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0;

在文件末尾,添加再次打开约束检查所需的语句:

SET SQL_MODE=@OLD_SQL_MODE;
SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS;
SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS;
SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT;
SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS;
SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION;
SET SQL_NOTES=@OLD_SQL_NOTES;

你将能够做到这一点。

邵宜年
2023-03-14

您已经链接了表,这就是错误的来源。在尝试将记录插入具有相同oauth_uid2的< code>bugs之前,您需要确保您在< code>users_facebook中有记录,例如

users_facebook has records with oauth_uid2 `10`, `20`, `30`

您尝试使用以下命令将记录插入到< code > bug 中

INSERT INTO bugs (oauth_uid2) VALUES (10) // works, there's a matching record in users_facebook
INSERT INTO bugs (oauth_uid2) VALUES (15) // fails, there's no user with that id.
 类似资料:
  • 问题内容: 当我不想相互连接两个表时,我得到以下消息:#1452-无法添加或更新子行:外键约束失败....我想从facebook_users表格中连接oauth_uid2(主键)外键为oauth_uid2的错误列表。但是我总是得到这个信息。我已经清除了数据,但没有任何效果。在表users_facebook中,我还有1条记录。 1452-无法添加或更新子行:外键约束失败(。,在更新级联上删除级联时使

  • 错误代码:1452。无法添加或更新子行:外键约束失败(.,约束外键()引用()) 我看过其他关于这个话题的帖子,但没有运气。我是不是在监督什么或者知道该怎么做?

  • 问题内容: 我的数据库中有两个表: ; 。 有一个列引用了表的列。每当我试图做在上面的错误将显示和数据不会被保存。 问题答案: 听起来是在表之间您在数据库中具有外键约束。这意味着,在Course_id列中,您不能插入与外部表中的id不同的值。 上面的错误意味着当您发布数据时,外部字段为空或丢失。 查找内容:1.检查数据库中子表中的外部字段是否可以接受NULL。如果您具有带值的下拉列表,并且如果该字

  • 问题内容: 当我执行以下SQL命令时: 我收到以下错误消息: 我的桌子: 我研究了许多类似的案例,但找不到任何解决方案。任何帮助,将不胜感激。 问题答案: 为什么您获得的是异常的原因是因为你将在表中的记录,其中的价值是不存在的表。与相同的值也未显示在表上。 表格取决于表格:和 。所以,要确保在表中插入记录时,该值与存在于父表已经:和 。 尝试执行此查询,并确定将其插入。 SQLFiddle演示 我

  • 我已经创建表MySQL工作台如下所示: LUFEWAFFE表: 特拉格弗莱切表 插入。LUFTWAFFE的sql日期 所以当我尝试运行它时: 代码:1452。无法添加或更新子行:外键约束失败(。, CONSTRAINTFOREIGN KEY()REFERENCES()) 我真的不明白错误是什么。 你可以帮我吗?

  • 我有两个表,当我试图保存通常的实体,扔 组织。springframework。刀。DataIntegrityViolationException:无法添加或更新子行:外键约束失败(,约束外键(,)引用(,));SQL[n/a];约束[null];嵌套的异常是org。冬眠例外ConstraintViolationException:无法添加或更新子行:外键约束失败(,constraint外键(,)参