当判断一条记录是否存在不是唯一的主键而是多个条件的时候就懵了啊。。 当这种情况出现时当然还是要用 DUPLICATE key update关键词了 但是是有前提条件的,因为我们是三个条件判断记录是否存在,这个时候就考虑到了联合主键,,什么是联合主键可以自行查询一下:
ALTER TABLE oa_achievement_class ADD UNIQUE (type,name,test_name)
接下来就可以使用了:
INSERT INTO oa_achievement_class (name,type,test_name,create_by,score) VALUES ('123','1','123','0','93') on DUPLICATE key update score = VALUES(score)
联合索引实际上是这样使用的
type and name and test_name 而不是OR
使用索引是,要主要单表建立多个索引时会影响表的写入速度