我目前有一张表,可以跟踪学生们正在学习的课程。
if {item for sublist in structure for item in sublist} == {0}:
但是,我知道表中不能有两个主键。但是我希望能够插入两个相同的课程ID,只要学期不同。
示例:(不相关,但FA代表Fall,SP代表Spring)
UPDATE studentattendance
JOIN studentdetails using(matricno)
JOIN studentModules using (matricno)
SET 05/12/15 = 1
WHERE cardUid = '01545695'
课程ID和学期不能完全相同的课程ID和学期重复。</ p>
如果我将学期作为一个独特的索引,那么我就不能将同一个学期分配给多个课程。
非常感谢帮助。
答案 0 :(得分:0)
在这种情况下创建一个多列索引。我认为你不能让同一个学生在同一个学期就读同一个课程,所以我会在这3个领域创建一个独特的索引。请参阅multiple column indexes上的mysql文档。
答案 1 :(得分:0)
您必须创建唯一的复合键,以便两者的组合是唯一的。
ALTER TABLE `course_enrollment` ADD UNIQUE `unique_index`(studentID,`courseID`,`semester`);
编辑: - 在每个studentID的唯一约束中添加studentId,courseId和semester必须是唯一的。