外键“无法添加或更新子行”

时间:2016-01-06 02:05:02

标签: php mysql phpmyadmin

首先我正在使用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或者比尔或史蒂夫可以使用此表单输入用户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表添加反馈,则会出现相同的错误

道歉,如果接下来没有任何意义,我很乐意回答你可能遇到的任何问题。

2 个答案:

答案 0 :(得分:0)

创建外键时,您必须提供引用属性:    ON UPDATE CASCADE   ON DELETE CASCADE

请浏览引用属性。

答案 1 :(得分:0)

我现在解决了这个问题,我有一个约束来阻止输入或某些数据,因此使用sql查询查看我的所有数据库约束,然后使用另一个查询来删除相关约束。之后,它就像添加外键一样简单,确保我在删除级联上使用更新级联