Php 外键约束失败
我对php和mysql比较陌生。我在Php 外键约束失败,php,mysql,Php,Mysql,我对php和mysql比较陌生。我在leave表中插入值时遇到的问题。我的leave表包含以下列 1.盖(内部主键) 2.empname(varchar) 3.用户名(varchar) 4.点头(整数) 5.sdate(日期) 6.edate(日期) 7.原因(varchar) 8.行动(varchar) 9.empID(INT外键) 此处empID是用户表中的外键引用。将值插入leave表时遇到的问题。错误如下所示 无法添加或更新子行:外键约束失败(db_attendance1leave,约束
leave
表中插入值时遇到的问题。我的leave
表包含以下列
1.盖(内部主键)
2.empname(varchar)
3.用户名(varchar)
4.点头(整数)
5.sdate(日期)
6.edate(日期)
7.原因(varchar)
8.行动(varchar)
9.empID(INT外键)
此处empID
是用户
表中的外键
引用。将值插入leave
表时遇到的问题。错误如下所示
无法添加或更新子行:外键约束失败(db_attendance1
leave
,约束leave_ibfk_1
外键(empID
)引用用户(empID
)
在这里,我只是发送查询,它就在这里
mysql_query("INSERT INTO `leave`
(`empname`, `username`,
`nod`, `sdate`, `edate`,
`reason`,`action`)
VALUES ('$empname', '$username',
'$nod', '$sdate',
'$edate', '$reason','');",
$dbCon) or die(mysql_error());
外键约束意味着一个表不接受会“破坏”外键的插入、更新或删除。这意味着,如果用户中不存在新的EmpID,则无法更新EmpID。如果用户表中不存在新的EmpID,则不能添加它,等等。 所以要解决这个问题,您需要确保您试图添加到表“leave”的EmpID首先存在于表“users”中。
外键可能是一个真正强大的项目,但也可能是一个真正的痛苦。由于您正在处理的数据库有外键约束,我建议您仔细阅读一下:Borniet,您帮助我解决了类似的问题 @OP-我所要做的就是在表中创建一个对应的行,这样外键就存在了。 例如,表1有列名 表2有一个列friends\u name,一个外键绑定到表1中的name。 我得到这个错误是因为我试图在表2中插入一行,其中friends_名称引用了表1中不存在的名称。所以我创造了这个名字,我们开始比赛:) 你可以把
SET FOREIGN_KEY_CHECKS=0;
然后运行您的查询。再次完成后,通过将其设置回1
SET FOREIGN_KEY_CHECKS=1;
确定empID首先进入用户表…亲爱的朋友,为什么你发布重复。这可能会起作用,但也可能导致一些无效数据进入表中。只有在确定错误是假的情况下才关闭外键。