1

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

我有一张这样的表,对应于教师的日程安排:

TEACHER_ID | WEEK_DAY |  HOUR | CLASS

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

我想加载一个 .csv 文件及其时间表,并且该过程会发现其上的行是否已存在于表中,更新它们,或者在不存在的情况下插入它们。

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

当使用“WHERE”在表格上进行更新/插入时,我认为将字段“TEACHER_ID”、“WEEK_DAY”和“HOUR”作为键,但我不知道该怎么做。

能达到我想要的吗?你能帮助我吗?

预先感谢您的回答!

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

4

1 回答 1

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;
于 2013-07-12T02:53:38.983 回答