我有这样的声明:
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)
这是什么意思?
答案 0 :(得分:1)
如果您要在links
中插入4,则需要在alias.ref_links_id
表格中设置值为4的link_id。
如果它不存在,首先在links
表中创建它。
答案 1 :(得分:1)
链接表没有值'4'。请检查链接表值,它的值为'4'。
答案 2 :(得分:1)
阅读错误
FOREIGN KEY (ref_links_id) REFERENCES links (link_id))
意味着
`links`.link_id (Parent)
`alias`.ref_links_id (Child)
没有父母就没有孩子。所以首先检查父表中您要插入子表的值
答案 3 :(得分:1)
if((select count(*) from primaty_table where pk_id=4) > 0)
{
INSERT INTO `alias`( `alias`, `ref_links_id`) VALUES ("3334",4)
}
答案 4 :(得分:0)
ref_links_id
4将存在于表alias
中。您不能为外键约束插入重复值。
如果要删除外键,
ALTER TABLE `alias` DROP FOREIGN KEY ref_links_id;
然后尝试INSERT INTO
别名(
别名,
ref_links_id ) VALUES ("3334",4)