我在sqlite database.i中插入数据时遇到问题。我创建了一个包含3列studentid,studentname和studentmarks的表。当我为两个不同的学生插入相同的标记时,它不会插入重复的entery。如何解决这个问题它将接受学生姓名和学生marks.thanks
上的重复条目答案 0 :(得分:3)
由于您有学生ID,因此无需拥有学生姓名。该表应具有课程ID /名称列,以将特定标记与学生和课程相关联。
基本上你需要三张桌子:
Student (ID, Name)
Course (ID, Name)
Mark (studentID, courseID, studentMark)
这称为third normal form
。 http://en.wikipedia.org/wiki/Third_normal_form
但是,如果您只想为数据库创建一个表,那么您仍然必须在表中添加课程ID和/或名称,并确保主键包含学生ID和课程ID。
答案 1 :(得分:0)
您可能已使用主键创建了表作为StudentID。在这种情况下,您不能为单个学生标记插入多行。您需要重新创建表格,删除学生ID
的主键/唯一值等限制您还应该为Students
创建一个单独的表,其中包含一个主键(Student ID
),您只需插入学生数据(每行代表一个学生)。
然后为Student_marks创建一个表,其中Student与Marks的关系是One-To-Many,这意味着Students_Marks
中的多行属于Students
表中的单行
答案 2 :(得分:0)
检查标记列是否存在唯一约束/或者如果上述任一情况为真,则您将标记设置为主键,则应删除唯一约束/主键以使代码按预期工作(在table_name上删除索引index_name)。