Mysql / php - 是否可以使用循环更新表但没有密钥?

时间:2013-07-12 01:39:37

标签: php mysql csv indexing

是否可以在没有主键的情况下创建更新mysql表中行的过程?

我有一张这样的表,符合教师的日程安排:

TEACHER_ID | WEEK_DAY |  HOUR | CLASS

1234567         2        11:30  MAT001
1234567         2        13:00  HIS001

我想加载带有日程安排的.csv文件,并且程序会发现表中的行是否已经存在于表中,更新它们,或者在不存在的情况下插入它们。

我的表没有主数据库,因为我们获得.csv文件的系统没有创建主数据库。

我认为将“TEACHER _ID”,“WEEK_DAY”和“HOUR”字段组合在一起使用“WHERE”进行表格更新/插入,但我无法弄清楚如何做到这一点

能达到我想要的吗?你能救我吗?

提前感谢您的回答!

(我提前为我的语法错误的错误道歉)

1 个答案:

答案 0 :(得分:1)

您可以在UNIQUE KEY http://dev.mysql.com/doc/refman/5.0/en/create-index.html

上创建TEACHER_ID,WEEK_DAY,HOUR
CREATE UNIQUE KEY classes ON your_table_name (TEACHER_ID,WEEK_DAY,HOUR)`

然后您可以使用INSERT ... ON DUPLICATE KEY UPDATE http://dev.mysql.com/doc/refman/5.0/en/insert-on-duplicate.html

INSERT INTO your_table_name (TEACHER_ID,WEEK_DAY,HOUR,CLASS) VALUES (1234567,2,11:30,MAT001)
 ON DUPLICATE KEY UPDATE CLASS=MAT001;