需求:项目须要调用别人的接口,读取的数据实时的对话记录,我这边须要读取并保存到数据库,而后须要用数据写一些接口;数据库
因为数据是实时更新的,因此我这边就写了一个定时任务配置类,以下图ide
若是直接添加,insert的话这样会有相同的数据重复添加,如何避免呢spa
首先,须要实现更新或忽略的数据的判别字段必须是主键或存在惟一索引(能够是单列或多列)。blog
好比要根据id判断是否重复,那么id必须是主键或者存在惟一索引。索引
好比要根据rid + type + date判断是否重复,那么要创建3个字段联合的惟一索引。接口
2.而后就是修改SQL了,以下:it
存在就更新:class
REPLACE INTO 表名(字段1, 字段2, ...) VALUES(值1, 值2, ...), (值1, 值2, ...);配置
存在就忽略:date
INSERT IGNORE 表名(字段1, 字段2, ...) VALUES(值1, 值2, ...), (值1, 值2, ...);
这样就能够简单地对数据进行批量操做。