簡體   English   中英

外鍵約束失敗

[英]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_attendance1leave ,約束leave_ibfk_1外鍵( empID )參考文獻usersempID ))

在這里我只是發送查詢,這里是..

    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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM