【发布时间】:2012-02-29 20:00:53
【问题描述】:
我试图上传一个 csv 文件来更新我的数据库中的一个表,但也想防止重复。最初一个 DUPLICATE 有效,但是当我添加第二个条件时它不起作用。 我得到“键 PRIMARY 的重复条目 '1'”。我怎样才能实现我的目标。
感谢您的帮助。
$sql = "INSERT INTO biodata (student_number, fname, lname, course_name, level)
VALUES('$data[0]', '$data[1]', '$data[2]', '$data[3]', '$data[4]')
DUPLICATE KEY UPDATE student_number = student_number
AND course_name = course_name";
mysql_query($sql) or die (mysql_error());
【问题讨论】:
-
表中
PRIMARY KEY和UNIQUE KEYs分别是什么? -
只有 student_number 是主键
-
所以,每个学生只能选修一门课程,对吧?
-
不是说他们每学期只能选一门课,而是他们实际上可以在一个学期选修一门特定课程,同时选修其他课程。
-
使用您现在的设计,学生不能出现在此表中超过 1 行。因此,没有人可以选修一门以上的课程。曾经。您应该重新检查设计。可能会更改
PRIMARY KEY或/和将信息拆分为更多表:一张用于学生信息,一张用于课程信息,一张用于注册信息(此表)。
标签: php mysql csv duplicates