Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/72.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
Php MySQL insert语句因外键约束而失败_Php_Mysql - Fatal编程技术网

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

错误本身告诉原因请在主键表中添加可访问的外键,否则从表中删除外键…请从已引用的父表开始插入值,由于父表不存在值,因此可能导致上述错误。错误本身告诉原因请在主键表中添加可访问的外键,否则从表中删除外键…请开始从已引用的父表插入值,由于父表不存在值,因此可能导致上述错误。