加入收藏 | 设为首页 | 会员中心 | 我要投稿 晋中站长网 (https://www.0354zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

Mysql批量insert重复数据的处理

发布时间:2022-10-15 06:31:37 所属栏目:MySql教程 来源:未知
导读: 经常在批量导入数据的时候,我们需要剔除已导入的重复数据,如果采用查询库中是否已经存在该条纪录MySQL 处理重复数据,一般是不划算的,至少会多一次查库的 操作。
其实数据库oracle或者m

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

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

(编辑:晋中站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!