您的位置:首页 > 数据库 > MySQL

Mysql批量insert重复数据的处理

2017-10-23 16:04 330 查看
经常在批量导入数据的时候,我们需要剔除已导入的重复数据,如果采用查询库中是否已经存在该条纪录,一般是不划算的,至少会多一次查库的 操作。

其实数据库oracle或者mysql已经提供了处理重复数据的机制:

oracle:可以使用 merge into语法

mysql:可以使用ON DUPLICATE KEY UPDATE

首先创建一个唯一索引:

ADD UNIQUE INDEX
uidx_v_a_m_id_mem
(
vote_id
ASC,
member_code
ASC);

insert into vote_activity_member ( vote_id, member_code,
member_name, vendor_name, contact_name,
contact_phone, sign_status, audit_status,
delete_flag, create_id, create_name,
create_time, modify_id, modify_name,
modify_time)
values

( 1, 'htd1000000',
'x', 'c', 'zxl',
'13265658562',0, 0,
0, 0,'zxl',
NOW(), 0, 'zxl',
NOW()),
( 1, 'xxx',
'w', 'w', 'zxl',
'13265658562',0,
0, 0,'zxl',
NOW(), 0, 'zxl',
NOW()) on duplicate key update modify_time =now()


on duplicate key update 会根据库里唯一索引的条件去检测,如果已经存在了一条,那么就不再insert而是执行update后面的语句。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  mysql