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

Mysql批量insert重复数据的处理

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

  其实数据库oracle或者mysql已经提供了
  经常在批量导入数据的时候,我们需要剔除已导入的重复数据,如果采用查询库中是否已经存在该条纪录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后面的语句。
 

(编辑:百客网 - 百科网)

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