Mysql批量insert重复数据的处理

来源:互联网 发布:c罗 知乎 编辑:程序博客网 时间:2024/05/21 10:07

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

其实数据库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后面的语句。

原创粉丝点击