Mysql/是否可以使用循环而不使用键来更新表


Mysql/Is it possible update a table with a loop but without a key?

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

我有一张这样的表,对应于老师的时间表:

TEACHER_ID | WEEK_DAY |  HOUR | CLASS
1234567         2        11:30  MAT001
1234567         2        13:00  HIS001

我想加载一个.csv文件和它们的时间表,然后该过程会发现上面的行是否已经存在于表中,更新它们,如果不存在,则插入它们。

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

当在表上使用"WHERE"进行更新/插入时,我想将字段"TEACHER_ID"、"WEEK_DAY"answers"HOUR"组合为一个键,但我不知道如何做到这一点。

能实现我想要的吗?你能帮我吗?

提前感谢您的回答!

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

您可以在TEACHER_ID,WEEK_DAY,HOUR上创建UNIQUE KEYhttp://dev.mysql.com/doc/refman/5.0/en/create-index.html

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

然后可以使用INSERT ... ON DUPLICATE KEY UPDATEhttp://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;