无法添加或更新子行......为什么我会收到此错误?

时间:2014-03-29 18:09:37

标签: mysql sql

$a='asfda'; $b='sdgdfgd'; $c='sdfdsfg'; $d='sgdfgdsfg';

mysql_query("INSERT INTO `users`(`id`, `confirmation`, `name`, `email`, `password`) VALUES ('','$a','$b','$c','$d')");

我的用户表中还有10个列,我想留空,而其中一个是' cityID' (外键),它一直给我这个错误...

  

"无法添加或更新子行:外键约束失败(php_firstusers,CONSTRAINT users_ibfk_1 FOREIGN KEY(city id)REFERENCES { {1}}(cities))"

3 个答案:

答案 0 :(得分:0)

因为你在users表中创建了一个索引,它引用了id表中的cities字段。删除该索引,你将摆脱这个错误。

我建议你删除索引,因为你的索引似乎没有任何帮助,否则当你有外键索引时,你必须让你必须存在外键的条目才能插入子记录的任何条目。

逻辑上这样想。你将创建一个父亲不存在的孩子;)

答案 1 :(得分:0)

mysql_query("set foreign_key_checks=0");

mysql_query("INSERT INTO `users`(`id`, `confirmation`, `name`, `email`, `password`) VALUES ('','$a','$b','$c','$d')");

答案 2 :(得分:0)

如果我不得不猜测,你的表中的cities有一个非NULL约束。

这会被报告为外键违规。您可以看到示例here

所以,这应该可以解决你的问题:

alter table modify column cities <whatever the type>

这将允许NULL值。