是否可以在没有主键的情况下创建更新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”进行表格更新/插入,但我无法弄清楚如何做到这一点
能达到我想要的吗?你能救我吗?
提前感谢您的回答!
(我提前为我的语法错误的错误道歉)
答案 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;