Php MySQL insert语句因外键约束而失败
我有以下声明:Php MySQL insert语句因外键约束而失败,php,mysql,Php,Mysql,我有以下声明: 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` (
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)
这意味着什么?如果要在alias.ref\u links\u id中插入4,则需要在links表中有一个值为4的link\u id
如果它不存在,请首先在链接表中创建它。如果要在alias.ref\u links\u id中插入4,则需要在链接表中具有值为4的链接id
如果链接表不存在,首先在链接表中创建它。链接表没有值“4”。请检查链接表的值是否为“4”。链接表没有值“4”。请检查链接表值,确认其值为“4”。读取错误信息
FOREIGN KEY (ref_links_id) REFERENCES links (link_id))
意味着
`links`.link_id (Parent)
`alias`.ref_links_id (Child)
没有父母就没有孩子。因此,首先检查父表中插入到子表中的值,读取错误
FOREIGN KEY (ref_links_id) REFERENCES links (link_id))
if((select count(*) from primaty_table where pk_id=4) > 0)
{
INSERT INTO `alias`( `alias`, `ref_links_id`) VALUES ("3334",4)
}
意味着
`links`.link_id (Parent)
`alias`.ref_links_id (Child)
没有父母就没有孩子。因此,首先检查父表中插入到子表中的值,表别名中将已经存在ref\u links\u id 4。不能为外键约束插入重复值
if((select count(*) from primaty_table where pk_id=4) > 0)
{
INSERT INTO `alias`( `alias`, `ref_links_id`) VALUES ("3334",4)
}
如果要删除外键
ALTER TABLE `alias` DROP FOREIGN KEY ref_links_id;
然后尝试插入AliasAlias,ref_links_id值3334,4将已存在于表别名中。不能为外键约束插入重复值
如果要删除外键
ALTER TABLE `alias` DROP FOREIGN KEY ref_links_id;
然后尝试插入AliasAlias,ref_links_id VALUES 3334,4错误本身告诉原因请在主键表中添加可访问的外键,否则从表中删除外键…请从已引用的父表开始插入值,由于父表不存在值,因此可能导致上述错误。错误本身告诉原因请在主键表中添加可访问的外键,否则从表中删除外键…请开始从已引用的父表插入值,由于父表不存在值,因此可能导致上述错误。