2

我有这样的声明:

INSERT INTO `alias`( `alias`, `ref_links_id`) VALUES ("3334",4)

我得到这个错误:

Cannot add or update a child row: a foreign key constraint fails 

(`bestr_main`.`alias`, CONSTRAINT `alias_ibfk_1` FOREIGN KEY (`ref_links_id`) 

REFERENCES `links` (`link_id`) ON DELETE CASCADE ON UPDATE CASCADE)

别名表使用外键连接到链接表。为什么插入记录时会出现此错误?

我现在明白了.. 我试图将键之间的链接更改为另一个表,我得到了这个:

  1452 - Cannot add or update a child row: a foreign key constraint fails 

  (`bestr_main`.<result 2 when explaining filename '#sql-73c_38e0'>, CONSTRAINT 

 `#sql-73c_38e0_ibfk_1` FOREIGN KEY (`ref_links_id`) REFERENCES `refs` (`ref_id`) 

 ON DELETE CASCADE ON UPDATE C) 

那说明什么?

4

5 回答 5

2

读取错误

FOREIGN KEY (ref_links_id) REFERENCES links (link_id))

方法

`links`.link_id  (Parent)

`alias`.ref_links_id (Child)

没有父母就没有孩子。所以首先检查父表中插入子表的值

于 2012-10-09T10:17:21.483 回答
1

如果您links想在alias.ref_links_id.

links如果它不存在,请先在表中创建它。

于 2012-10-09T10:15:49.020 回答
1

链接表没有值“4”。请检查链接表值,它的值为“4”。

于 2012-10-09T10:16:43.903 回答
1
if((select count(*) from primaty_table where pk_id=4) > 0)
{
INSERT INTO `alias`( `alias`, `ref_links_id`) VALUES ("3334",4)
}
于 2012-10-09T10:20:25.453 回答
0

ref_links_id4 将已经存在于表中alias。您不能为外键约束插入重复值。

如果要删除外键,

ALTER TABLE `alias` DROP FOREIGN KEY ref_links_id;  

然后尝试INSERT INTOalias (alias ,ref_links_id) VALUES ("3334",4)

于 2012-10-09T10:20:50.787 回答