需求:项目需要调用别人的接口,读取的数据实时的对话记录,我这边需要读取并保存到数据库,然后需要用数据写一些接口;
由于数据是实时更新的,所以我这边就写了一个定时任务配置类,如下图
如果直接添加,insert的话这样会有相同的数据重复添加,如何避免呢
首先,需要实现更新或忽略的数据的判别字段必须是主键或存在唯一索引(可以是单列或多列)。
比如要根据id判断是否重复,那么id必须是主键或者存在唯一索引。
比如要根据rid + type + date判断是否重复,那么要建立3个字段联合的唯一索引。
2.然后就是修改SQL了,如下:
存在就更新:
REPLACE INTO 表名(字段1, 字段2, ...) VALUES(值1, 值2, ...), (值1, 值2, ...);
存在就忽略:
INSERT IGNORE 表名(字段1, 字段2, ...) VALUES(值1, 值2, ...), (值1, 值2, ...);
这样就可以简单地对数据进行批量操作。
来源:oschina
链接:https://my.oschina.net/u/4340499/blog/4275255