簡體   English   中英

外鍵“無法添加或更新子行”

[英]Foreign Key “can not add or update a child row”

首先,我同時使用LibreBase和phpmyadmin

簡而言之,我有2個表,一個學生表和一個學生反饋表

Student contains:
StudentUserID(primary key) type=int(11) Null=no  Default=none Extra=Auto_Increment

FirstName type=varchar(50) Null=Yes Default=Null

Surname type=varchar(50) Null=Yes Default=Null

StudentFeedback contains:

FeedbackID(primary key) type=int(11) Null=no  Default=none Extra=Auto_Increment

Student(I think is foreign key) type=int(11) Null=Yes Default=Null

Feedback type=varchar(150) Null=no  Default=none 

現在我想發生的事情是,可以使用librebase上的表單創建一個學生,然后將該表單添加到表中,例如

1 Joe Bloggs, 2 Bill Gates, 3 Steve Jobs. 

但是,我創建了另一個表單,然后將數據添加到反饋表中,以便Joe Bloggs或實際上Bill或Steve可以使用此表單在此處輸入用戶ID,然后在其中添加反饋。 我相信我可以做的各種查詢和報告將顯示這些數據。 當我嘗試通過librebase表單添加數據時,就會出現問題。 添加新學生的表格包括:

Firstname (textbook)
Surname (textbox)

但是,由於librebase拋出錯誤框,該數據不會輸入/輸入到表中

 Error inserting the new record SQL Status: 23000 Error code: 1452 Cannot add or update a child row: a foreign key constraint fails >(`mydb`.`student`, CONSTRAINT `student_ibfk_1` FOREIGN KEY (`StudentUserID`) >REFERENCES `StudentFeedback` (`Student`) ON DELETE CASCADE ON UPDATE >CASCADE) 

如果我嘗試將數據添加到創建的表單中以將反饋添加到StudentFeedback表中,則會出現相同的錯誤

抱歉,如果這幾乎沒有道理,我會很樂意回答您可能遇到的任何問題。

創建外鍵時,必須提供引用屬性: ON UPDATE CASCADE ON DELETE CASCADE

請檢查引用屬性。

現在,我已經解決了問題,我有一個約束輸入或某些數據的約束,因此使用sql查詢查看我的所有數據庫約束,然后使用另一個查詢刪除相關約束。 之后,就像添加外鍵一樣簡單,確保我在刪除級聯上使用更新級聯

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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