2016-01-06 19 views
1

首先我同時使用LibreBase和phpmyadmin的外鍵「不能添加或更新子行」

總之我有2代表一個學生和一個StudentFeedback表

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. 

但是我創造了另一種形式,然後將數據添加到反饋表,以便李四或確實比爾或者史蒂夫可以使用這種形式的輸入有用戶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表

道歉,如果這使旁邊沒有的形式出現同樣的錯誤我會很樂意回答你可能遇到的任何問題。

+0

請提供您的插入查詢 –

回答

0

我現在已經解決了這個問題,我有一個約束阻斷輸入或某些數據,因此使用SQL查詢來查看我所有的數據庫約束,然後用另一種查詢,取消其相應的約束。之後,它的那樣簡單添加外鍵確保我在級聯更新使用上刪除級聯

0

雖然創建外鍵,你必須給引用屬性: ON UPDATE CASCADE ON DELETE CASCADE

請到通過引用屬性。

+0

我已經寫的SQL代碼兩塊嘗試阿卡什既不似乎工作: ALTER TABLE StudentFeedback, DROP PRIMARY KEY, DROP外鍵 ADD PRIMARY KEY(FeedbackID), 添加外鍵(學生)參考文獻學生(StudentUserID)ON UPDATE CASCADE ON DELETE CASCADE 還是我第二件 ALTER TABLE StudentFeedback( INDEX par_ind(學生), 外鍵(學生) 參考學生(Student_StudentUserID) ON DELETE CASCADE ON UPDATE CASCADE ) 但無論是看起來工作都扔了錯誤 –

+0

請提供錯誤! –

相關問題