MySql批量插入时,如何不插入重复的数据
业务很简单:需要批量插入一些数据,数据来源可能是其他数据库的表,
也可能是一个外部excel的导入
那么问题来了,是不是每次插入之前都要查一遍,看看重不重复,在代码
里筛选一下数据,重复的就过滤掉呢?
向大数据数据库中插入值时,还要判断插入是否重复,然后插入。如何提
高效率
看来这个问题不止我一个人苦恼过。
解决的办法有很多种,不同的场景解决方案也不一样,数据量很小的情况
下,怎么搞都行,但是数据量很大的时候,这就不是一个简单的问题了。
几百万的数据,不可能查出来,做去重处理
说一下我Google到的解决方案
1、insert ignore into
当插入数据时,如出现错误时,如重复数据,将不返回错误,只以警
告形式返回。所以使用ignore请确保语句本身没有问题,否则也会被
忽略掉。例如:
INSERT IGNORE INTO user (name) VALUES ('telami')
这种方法很简便,但是有一种可能,就是插入不是因为重复数据报错
,而是因为其他原因报错的,也同样被忽略了~