Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/57.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 错误1452(23000):无法添加或更新子行_Mysql_Foreign Keys_Mysqldump - Fatal编程技术网

Mysql 错误1452(23000):无法添加或更新子行

Mysql 错误1452(23000):无法添加或更新子行,mysql,foreign-keys,mysqldump,Mysql,Foreign Keys,Mysqldump,我有以下数据库,当我尝试运行下面显示的查询时,我得到一个错误,即无法添加或更新子行。我不明白为什么我会犯这个错误 数据库中存在我正在输入的对象id(327)。我也用其他对象id尝试过这个方法,同样的错误也出现了。这里发生了什么 like_objects +-------------+---------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extr

我有以下数据库,当我尝试运行下面显示的查询时,我得到一个错误,即
无法添加或更新子行
。我不明白为什么我会犯这个错误

数据库中存在我正在输入的对象id(327)。我也用其他
对象id
尝试过这个方法,同样的错误也出现了。这里发生了什么

    like_objects
+-------------+---------+------+-----+---------+----------------+
| Field       | Type    | Null | Key | Default | Extra          |
+-------------+---------+------+-----+---------+----------------+
| object_id   | int(11) | NO   | MUL | NULL    |                |
| id          | int(11) | NO   | PRI | NULL    | auto_increment |
| user_id     | int(11) | NO   | MUL | NULL    |                |
+-------------+---------+------+-----+---------+----------------+

objects
+--------------+--------------+------+-----+---------+----------------+
| Field        | Type         | Null | Key | Default | Extra          |
+--------------+--------------+------+-----+---------+----------------+
| object_name  | longtext     | NO   |     | NULL    |                |
| object_desc  | longtext     | NO   |     | NULL    |                |
| id           | int(11)      | NO   | PRI | NULL    | auto_increment |
| likes        | int(11)      | NO   |     | NULL    |                |
+--------------+--------------+------+-----+---------+----------------+
以下是查询及其产生的错误:

insert into  like_objects (object_id,user_id) values (327,1)

ERROR 1452 (23000): Cannot add or update a child row: a foreign key constraint fails 
(`test_db`.`like_objects`, CONSTRAINT `object_id_refs_id_57f96810` FOREIGN KEY (`object_id`) 
REFERENCES `objects` (`id`))
这是非常奇怪的,因为我对另一个表使用了类似的
like
逻辑,它工作得非常好


重要我从
mysqldump
中获得了
对象
表。最初,
objects
表是从PhpMyAdmin创建的,而like\u objects表是由
django模型创建的

我已经找出了问题所在。正如我在问题中所说,
objects
表是使用
phpmyadmin
创建的,然后转储到我的数据库中,该数据库是
django项目的一部分

因此,最初创建的表的存储引擎是
MyISAM
,但django创建的表的存储引擎是
innodb
。所以,每当我试图在引用
对象的
like_objects
表中插入一个对象时,就会出现存储类型不兼容的情况

这帮助我找到了我的表的存储引擎是什么,然后我使用belwo给定的命令将MyISAM引擎更改为innodb,它工作正常

ALTER TABLE products ENGINE = innodb

请将健全性检查的结果(即,
select*from objects,其中id=327
)添加到帖子中。另外,为这两个表添加
create table
语句可能会有所帮助。@MattFenwick:由于对象描述是一个长文本,因此此查询的结果非常长。我无法复制整个内容,但正如预期的那样,我得到了正确的元组。
id
确实存在于表中。正如我所说,我从mysqldump获得了这个表,原始表是很久以前创建的,我不记得
create table
,但当时我使用
phpmyadmin
show create table like_objects