[英]A foreign key constraint fails
我在php和mysql中比較新。當我在leave
表中插入值時,我面臨的問題。我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
是來自users
表的foreign key
引用。 將值插入到leave
表中時所面臨的問題.ERROR如下所示
不能添加或更新子行,外鍵約束失敗( db_attendance1
。 leave
,約束leave_ibfk_1
外鍵( empID
)參考文獻users
( 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());
你可以放
SET FOREIGN_KEY_CHECKS=0;
並運行您的查詢。 完成后再將其設置為1
SET FOREIGN_KEY_CHECKS=1;
外鍵約束意味着您的一個表不接受將“中斷”外鍵的插入,更新或刪除。 這意味着,如果用戶中不存在新的EmpID,則無法更新EmpID。 如果在users表等中不存在新的EmpID,則無法添加新的EmpID。 因此,要解決此問題,您需要確保您嘗試添加到表'leave'的EmpID首先存在於表'users'中。 外鍵可以是一個真正強大的項目,但也可能是一個真正的痛苦。 由於您正在處理的數據庫有外鍵約束,我建議您稍微閱讀它們: http : //en.wikipedia.org/wiki/Foreign_key
Borniet,你幫我解決了類似的問題。
@OP - 我必須做的就是在表中創建一個相應的行,以便存在外鍵。 例如,表1有列名稱表2有列的friends_name,一個外鍵與表1中的Name相關聯。我收到此錯誤是因為我試圖在表2中插入一行,其中friends_name引用了表1中的一個不存在的名稱。所以我創造了這個名字,我們即將參加比賽:)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.