未实施外键约束

时间:2016-08-08 11:55:25

标签: mysql foreign-keys

我正在尝试在以下两个表之间创建一个外键:

  

学生:

     

id(PK,非null,唯一,AI)

     

student_number(非空,唯一)

     

...(其他没有约束的列)

  

项目:

     

id(pk,not null,unique,AI)

     

student_number(非null)

     

...(其他没有约束的列)

我使用的语法是:

ALTER table project 
ADD CONSTRAINT fk_project_student FOREIGN KEY (student_number) 
REFERENCES student (student_number) ON DELETE CASCADE ON UPDATE CASCADE;

但是我得到以下内容:

错误1452(23000):无法添加或更新子行:外键约束失败

如果你问,没有团队项目,所以这是一个简单的一对多关系。

1 个答案:

答案 0 :(得分:1)

您已经拥有不符合外键约束的记录。使用

找到它们
SELECT project.student_id from project 
LEFT JOIN student ON project.student_number = student.student_number
WHERE student.student_number IS NULL