是否可以在没有主键的情况下创建一个更新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 KEY
http://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 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;