我在php和mysql中比较新。我在leave
table.My leave
表中插入值时遇到的问题包含以下列..
1.lid(INT主键)
2.empname(VARCHAR)
3.username(VARCHAR)
4.nod(INT)
5.sdate(DATE)
6.edate(DATE)
7.reason(varchar)
8.action(VARCHAR)
9.empID(INT FOREIGN KEY)
此处empID
是来自foreign key
表的users
引用。将值插入leave
table.ERROR时面临的问题如下所示
无法添加或更新子行:外键约束失败(db_attendance1
。leave
,CONSTRAINT leave_ibfk_1
FOREIGN KEY(empID
)REFERENCES {{ 1}}(users
))
这里我只是发送查询,这里是..
empID
答案 0 :(得分:8)
你可以把
SET FOREIGN_KEY_CHECKS=0;
并运行您的查询。完成后,再次将其设置为1
SET FOREIGN_KEY_CHECKS=1;
答案 1 :(得分:7)
外键约束意味着您的一个表不接受将“中断”外键的插入,更新或删除。这意味着,如果用户中不存在新的EmpID,则无法更新EmpID。如果在users表等中不存在新的EmpID,则无法添加新的EmpID。 因此,要解决此问题,您需要确保您尝试添加到表'leave'的EmpID首先存在于表'users'中。 外键可以是一个真正强大的项目,但也可能是一个真正的痛苦。由于你正在处理的数据库有外键约束,我建议你稍微阅读一下:http://en.wikipedia.org/wiki/Foreign_key
答案 2 :(得分:0)
Borniet,你帮我解决了类似的问题。
@OP - 我必须做的就是在表中创建一个相应的行,以便存在外键。 例如。表1列有名称 表2列有friends_name,一个与表1中的Name绑定的外键。 我得到了这个错误,因为我试图在表2中插入一行,其中friends_name引用了表1中的一个不存在的名称。所以我创建了名称,我们将参加比赛:)。