on duplicate key update介绍
1.on duplicate key update 使用在向数据库中插入数据(存在即更新不存在即插入)这样的案例中
2.on duplicate key update 需要建立unique索引或主键
3.on duplicate key update 需要插入的数据存在多条相同数据时,按最后一条覆盖
4.on duplicate key update 插入的数据不能保证id连贯递增
使用案例
<insert >
INSERT INTO student
(
id,
name,
class,
english_course,
math_course,
creation_date
)
VALUES
<foreach collection="list" item="dto" index="index" separator=",">
(
#{dto.id},
#{dto.name},
#{dto.class},
#{dto.englishCourse},
#{dto.mathCourse}
#{dto.creationDate}
)
</foreach>
ON DUPLICATE KEY UPDATE
english_course = VALUES(`english_course),
math_course = VALUES(math_course),
creation_date = VALUES(creation_date)
</insert>
上述代码,设置id,name,class为unique索引
当有数据进来时,如果唯一索引id,name,class这三个字段一样 ,english_course ;
如果唯一索引id,name,class这三个字段中任何一个字段不一样,将会执行插入操作