MySQL:禁止两列具有相同的值

时间:2015-12-05 03:22:43

标签: mysql

我目前有一张表,可以跟踪学生们正在学习的课程。

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>

如果我将学期作为一个独特的索引,那么我就不能将同一个学期分配给多个课程。

非常感谢帮助。

2 个答案:

答案 0 :(得分:0)

在这种情况下创建一个多列索引。我认为你不能让同一个学生在同一个学期就读同一个课程,所以我会在这3个领域创建一个独特的索引。请参阅multiple column indexes上的mysql文档。

答案 1 :(得分:0)

您必须创建唯一的复合键,以便两者的组合是唯一的。

ALTER TABLE `course_enrollment` ADD UNIQUE `unique_index`(studentID,`courseID`,`semester`);

编辑: - 在每个studentID的唯一约束中添加studentId,courseId和semester必须是唯一的。