我正在尝试在以下两个表之间创建一个外键:
学生:
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):无法添加或更新子行:外键约束失败
如果你问,没有团队项目,所以这是一个简单的一对多关系。
答案 0 :(得分:1)
您已经拥有不符合外键约束的记录。使用
找到它们SELECT project.student_id from project
LEFT JOIN student ON project.student_number = student.student_number
WHERE student.student_number IS NULL